BrimbaMedlem sedan dec. 19995 875 inlägg Hej!
Jag har gjort ett helt vanligt script, men det funkar dåligt i NS. Kan man göra så att det funkar i NS? Jag menar det är ju vanliga "om checkboxen är ikryssad så".
Kan nån kolla på mitt script och säga mig vad som kan vara fel? Eller om man kan skriva det så att det funkar även i NS?
P.S
Det funkar perfekt i Explorer!
<script language="JavaScript">
function validateform2()
{
if (document.myform.avbetalning.checked && document.myform.persnr.value=="")
{
alert("Du har valt att köpa datorn på avbetalning, därmed behöver vi ditt personnummer var god och fyll i det.")
return false
}
else
if (document.myform.avbetalning.checked && "249" <= 6000)
{
alert("För att du skall kunna köpa på avbetalning krävs att du handlar för minst 6000kr inkl moms.")
return false
}
else
if (document.myform.avbetalning.checked && document.myform.kort.checked)
{
alert("Betalnings sätten krockar!\n\nSe till att du endast väljet ett betal sätt.")
return false
}
else
if (document.myform.kort.checked && document.myform.betvidlev.checked)
{
alert("Betalnings sätten krockar!\n\nSe till att du endast väljet ett betal sätt.")
return false
}
else
if (document.myform.betvidlev.checked && document.myform.avbetalning.checked)
{
alert("Betalnings sätten krockar!\n\nSe till att du endast väljet ett betal sätt.")
return false
}
else
if (document.myform.kort.checked)
{
alert("Vå utvecklar just nu datorköp med kort via internet, undertiden kan du betala kontant eller via avbetalning.\n\nTack!")
return false
}
else
if (document.myform.betvidlev.checked | | document.myform.avbetalning.checked | | document.myform.kort.checked)
{
return true
}
else
{
alert("Du måste ange betalnings sätt!")
return false
}
}
</script>
Tack!
Mvh
Patrik
aka Brimba
emissionMedlem sedan dec. 19996 721 inlägg Jag ser inte just nu vad som är fel, men varför har du checkboxar till betalningssätten? Eftersom man måste välja ett sätt, och endast ett sätt, är det ju radioknappar som gäller.
Vad gör villkoret
....."249" <= 6000
?
"249" är ju en literal.
Vid sidan om detta kan du väl ta och korra stavningen lite, innan du lägger ut den.
mvh
------------------
----------------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
Norrköping
BrimbaMedlem sedan dec. 19995 875 inlägg Tjennare
vad menar du med stavningen? Har jag stavat fel?
Sen det där med 6000 är att det står egentligen så här:
if (document.myform.avbetalning.checked && "<%= FormatNumber(SubTotalinkl+100,0) %>" <= 6000)
Så den hämtar ett värde från databasen.
Du kan kolla på hemsidan om du vill
gå till www.datormaklarna.se
lägg i någon vara i din varukorg, registrera dig, logga in. Och sen ser du sidan.
Det är väldigt sant det du säger, det är klart att det skall vara radioknappar. Ibland är man låst på det man gör :)
Jag skall ha 3 radioknappar och 1 checkknapp, men det borde ju gå att göra ett litet script där att om checkboxen inte är i kryssad så skall den inte gå igenom.
Hoppas på hjälp!
Mvh
Patrik
aka Brimba
emissionMedlem sedan dec. 19996 721 inlägg Ja, det var ett par särskrivningar och några felskrivningar.
"Du har valt att köpa datorn på avbetalning**. Därmed behöver vi ditt personnummer. V**ar god och fyll i det."
"Betalningssätten krockar!\n\nSe till att du endast väljer ett betalningssätt."
Men den behöver du ju inte längre....
"Vi utvecklar just nu datorköp med kort via internet**. Under tiden** kan du betala kontant eller via avbetalning.\n\nTack!"
"Du måste ange betalningssätt!"
if (document.myform.avbetalning.checked && "<%= FormatNumber(SubTotalinkl+100,0) %>" <= 6000)
Resultatet blir ju att Javascript jämför en literal sträng med en integer, och det blir ju inget vidare.
Prova med
var subtot=parseInt("<%= FormatNumber(SubTotalinkl+100,0) %>");
if (document.myform.avbetalning.checked && subtot <= 6000)
------------------
----------------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
Norrköping
BrimbaMedlem sedan dec. 19995 875 inlägg Hej igen!
Tack för dina kommentarer, det verkar fint faktiskt, jag har nu gjort så här:
<script language="JavaScript">
function validateform()
{ if (document.myform.avtal.checked)
{
return true
}
else
{
alert("Du måste acceptera våra avtal för att vi skall kunna processera ordern.")
return false
}
}
</script>
[kod]
[kod]
<script language="JavaScript">
function validateform2()
{
if (document.myform.betsatt[2].checked)
{
alert("Vi utvecklar just nu datorköp med kort via internet. Under tiden kan du betala kontant eller via avbetalning.\n\nTack!")
return false
}
else
var subtot=parseInt("<%= FormatNumber(SubTotalinkl+100,0) %>");
if (document.myform.betsatt[1].checked && subtot <= 6000)
{
alert("För att du skall kunna köpa på avbetalning krävs att du handlar för minst 6000kr inkl moms.")
return false
}
else
if (document.myform.betsatt[1].checked && document.myform.persnr.value=="")
{
alert("Du har valt att köpa datorn på avbetalning. Därmed behöver vi ditt personnummer. Var god och fyll i det.")
return false
}
else
{
return true
}
}
</script>
Men det som du skrev om parseInt, fungerar inte så bra.
Med tanke på att jag skriver överst på min ASP sida följande: <%Session.LCID = 1053%>
Så formaterar den siffrorna till tex 9 803 och när den då jämnför om 9 803 <= 6000 så tror den antagligen att det är 9,8 eller nått sånt så hur löser jag detta nu?
Min jämförelse som jag hade innan har fungerat perfekt, borde ju kunna köra med den?
Mvh
Patrik
aka Brimba
BrimbaMedlem sedan dec. 19995 875 inlägg Hej igen!
Jag har löst Netscape problemet.
Jag hade gjort följande:
<form method="POST" name="myform" onSubmit="return validateform()" action="sendmail.asp">
Sen hade jag lite senare i koden
<input id="submit1" name="B1" src="../images/spara.gif" type="image" WIDTH="75" HEIGHT="19" onfocus="blur()" onclick="return validateform2()">
Netscape gillar inte att göra en "validateform" när man trycker på knappen, så jag la in allting i ett å samma script så här:
<script language="JavaScript">
function validateform()
{
if (document.myform.betsatt[2].checked)
{
alert("Vi utvecklar just nu datorköp med kort via internet. Under tiden kan du betala kontant eller via avbetalning.\n\nTack!")
return false
}
else
var subtot=parseInt("<%= FormatNumber(SubTotalinkl+100,0) %>");
if (document.myform.betsatt[1].checked && subtot <= 6000)
{
alert("För att du skall kunna köpa på avbetalning krävs att du handlar för minst 6000kr inkl moms.")
return false
}
else
if (document.myform.betsatt[1].checked && document.myform.persnr.value=="")
{
alert("Du har valt att köpa datorn på avbetalning. Därmed behöver vi ditt personnummer. Var god och fyll i det.")
return false
}
else
if (document.myform.avtal.checked)
{
return true
}
else
{
alert("Du måste acceptera våra avtal för att vi skall kunna processera ordern.")
return false
}
}
</script>
Så nu funkar validaten även i Netscape :) Det är ju bra tycker jag :)
Hittar ni nått i koden ni tycker är dåligt, eller nått annat som ni vill klaga på så säg till! Jag är mycket tacksam för kommentarer!
Mvh
Patrik
aka Brimba
emissionMedlem sedan dec. 19996 721 inlägg Nu ser det riktigt bra ut. "processera" ordern är inte riktigt lyckat dock. "processa" eller ännu hellre "behandla"
/G