Een van onze klanten heeft een pagina op zijn site staan, waarmee de prijs berekend kan worden van een postcode naar Schiphol. Dit zijn vaste prijzen.
Er wordt gebruik gemaakt van een lijstje met 31 vaste prijzen, en aan de hand van de postcode en het aantal personen bekijkt het schriptje welke prijs er van toepassing is.
Probleem is echter, dat dit perfect werkt in IE, maar niet in Netscape/Mozilla of wat dan ook.
Dit is het script:
code:
<SCRIPT language="JavaScript">
<!--hide
function RoundMoney(value) {
var s = "" + (Math.round(value*100)/100);
if (s.indexOf(".") == -1)
s += ".00";
else
if (s.indexOf(".") == s.length-2)
s += "0";
return s;
}
function Bereken()
{
var lijst=null;
var prijs=new Array(32);
prijs[0]=47.50;
prijs[1]=26.00;
prijs[2]=20.50;
prijs[3]=17.50;
prijs[4]=15.80;
prijs[5]=14.25;
prijs[6]=13.00;
prijs[7]=12.00;
prijs[8]=59.00;
prijs[9]=35.00;
prijs[10]=32.00;
prijs[11]=26.00;
prijs[12]=22.00;
prijs[13]=20.00;
prijs[14]=18.00;
prijs[15]=16.00;
prijs[16]=36.00;
prijs[17]=20.00;
prijs[18]=16.00;
prijs[19]=13.25;
prijs[20]=12.60;
prijs[21]=11.00;
prijs[22]=10.00;
prijs[23]=9.00;
prijs[24]=68.00;
prijs[25]=37.00;
prijs[26]=35.00;
prijs[27]=27.50;
prijs[28]=24.25;
prijs[29]=21.00;
prijs[30]=20.00;
prijs[31]=17.50;
var code=document.calculate.postcode.value.substring(0,4);
var aantal=document.calculate.aantal.options.value;
if ( (code>=1100 && code<=1599) ||
(code>=1700 && code<=1705) ||
(code>=1800 && code<=1999) ||
(code>=3632 && code<=3634) )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1]);
lijst=true;
}
if ( (code>=1600 && code<=1699) ||
(code>=1706 && code<=1799) ||
(code>=3891 && code<=3899) )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1+8]);
lijst=true;
}
if ( (code>=2000 && code<=2082) ||
(code>=2100 && code<=2111) )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1+16]);
lijst=true;
}
if ( code>=8211 && code<=8256 )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1+24]);
lijst=true;
}
if (lijst!=true)
{
alert('Postcode incorrect of buiten de regio !');
}
else
{
document.calculate.totaal.value=RoundMoney(aantal *document.calculate.sub.value);
}
}
//-->
</SCRIPT>
Misschien dat iemand mij wil helpen dit probleem op te lossen, ikzelf begrijp namelijk helemaal niets van Java, en de collega die dit heeft gemaakt werkt hier niet meer.
Er wordt gebruik gemaakt van een lijstje met 31 vaste prijzen, en aan de hand van de postcode en het aantal personen bekijkt het schriptje welke prijs er van toepassing is.
Probleem is echter, dat dit perfect werkt in IE, maar niet in Netscape/Mozilla of wat dan ook.
Dit is het script:
code:
<SCRIPT language="JavaScript">
<!--hide
function RoundMoney(value) {
var s = "" + (Math.round(value*100)/100);
if (s.indexOf(".") == -1)
s += ".00";
else
if (s.indexOf(".") == s.length-2)
s += "0";
return s;
}
function Bereken()
{
var lijst=null;
var prijs=new Array(32);
prijs[0]=47.50;
prijs[1]=26.00;
prijs[2]=20.50;
prijs[3]=17.50;
prijs[4]=15.80;
prijs[5]=14.25;
prijs[6]=13.00;
prijs[7]=12.00;
prijs[8]=59.00;
prijs[9]=35.00;
prijs[10]=32.00;
prijs[11]=26.00;
prijs[12]=22.00;
prijs[13]=20.00;
prijs[14]=18.00;
prijs[15]=16.00;
prijs[16]=36.00;
prijs[17]=20.00;
prijs[18]=16.00;
prijs[19]=13.25;
prijs[20]=12.60;
prijs[21]=11.00;
prijs[22]=10.00;
prijs[23]=9.00;
prijs[24]=68.00;
prijs[25]=37.00;
prijs[26]=35.00;
prijs[27]=27.50;
prijs[28]=24.25;
prijs[29]=21.00;
prijs[30]=20.00;
prijs[31]=17.50;
var code=document.calculate.postcode.value.substring(0,4);
var aantal=document.calculate.aantal.options.value;
if ( (code>=1100 && code<=1599) ||
(code>=1700 && code<=1705) ||
(code>=1800 && code<=1999) ||
(code>=3632 && code<=3634) )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1]);
lijst=true;
}
if ( (code>=1600 && code<=1699) ||
(code>=1706 && code<=1799) ||
(code>=3891 && code<=3899) )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1+8]);
lijst=true;
}
if ( (code>=2000 && code<=2082) ||
(code>=2100 && code<=2111) )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1+16]);
lijst=true;
}
if ( code>=8211 && code<=8256 )
{
document.calculate.sub.value=RoundMoney(prijs[aantal-1+24]);
lijst=true;
}
if (lijst!=true)
{
alert('Postcode incorrect of buiten de regio !');
}
else
{
document.calculate.totaal.value=RoundMoney(aantal *document.calculate.sub.value);
}
}
//-->
</SCRIPT>
Misschien dat iemand mij wil helpen dit probleem op te lossen, ikzelf begrijp namelijk helemaal niets van Java, en de collega die dit heeft gemaakt werkt hier niet meer.