04. august 2003 - 16:33
Der er
12 kommentarer og 1 løsning
Validering virker nå man trykker på knappen, men ikke på ENTER
Jeg har følgende kode: <script type="text/javascript"> function validate(form1) { XXX = form1.XXX.value.toLowerCase() if (XXX=="" || XXX==" ") { alert("Udfyld venligst søgefeltet."); return (false); } form1.submit() } </script> <form action="demo2.asp" id="FormA" method="post" onSubmit="validate(FormA)"> <input name="XXX"> Blah-blah-blah <p align="center"> <img src="pics/dk_continue.gif" onClick="validate(FormA)"> </p> </form> Når jeg trykker på knappen (dk_continue.gif) så validere den som den skal, men hvis jeg blot trykker ENTER så dukker alert'en godt nok op, men brugeren sendes alligevel videre til næste side. Hvad gør jeg forkert?
Annonceindlæg fra Pax8
04. august 2003 - 16:35
#1
Nu har jeg ikke lige set den der return (false) før, så prøv lige return false;
04. august 2003 - 16:39
#2
-- og den skal hedde: <form action="demo2.asp" id="FormA" method="post" onSubmit="return validate(this)"> Den sidste med this er bare nemmere ...
04. august 2003 - 16:58
#3
Hvis jeg prøver med koden: <script type="text/javascript"> function validate(form1) { XXX = form1.XXX.value.toLowerCase() if (XXX=="" || XXX==" ") { alert("Udfyld venligst søgefeltet."); return (false); } form1.submit() } </script> <form action="demo2.asp" method="post" onSubmit="validate(this)"> <input name="XXX"> Blah-blah-blah <p align="center"> <img src="pics/dk_continue.gif" onClick="validate(this)"> </p> </form> - sår får jeg script-fejl når jeg truller på knappen. Og ENTER sender mig alligevel videre.
04. august 2003 - 17:00
#4
...og det er det samme uden paraentes om false. Hvilket i øvrigt er ganske lovlog JavaScript.
04. august 2003 - 17:02
#5
Det der undre mig er: Hvad er forskellem mellem at jeg bruger knappen og at jeg bruger ENTER? Siden at det sikkert har et eller andet at gøre med min browser, så må jeg heller nævne at jeg bruger MSIE 6.0.
04. august 2003 - 17:08
#6
Hvordan fanger du Enter ?-) -- og hvorfor har du en .submit() i dit script, det er da nemmere, at <form action="demo2.asp" method="post" onSubmit="return validate(this)"> <input name="XXX"> Blah-blah-blah <p align="center"> <input type="image" src="pics/dk_continue.gif"> </p> </form> -- og den der return _skal_ med i onsubmit ...
04. august 2003 - 17:22
#7
Jeg gør skam ikke noget specielt for at fange ENTER. Jeg tror at det er MSIR som gør det. Når blot formen kun har en eneste input og man trykker på ENTER, så virker det som en submit.
04. august 2003 - 17:23
#8
Grunden til at jeg har min submit() i scriptete er at jeg nogen gange har brug for at flytte knappen ud af formen: <script type="text/javascript"> function validate(form1) { XXX = form1.XXX.value.toLowerCase() if (XXX=="" || XXX==" ") { alert("Udfyld venligst søgefeltet."); return (false); } form1.submit() } </script> <form action="demo2.asp" id="FormA" method="post" onSubmit="validate(FormA)"> <input name="XXX"> Blah-blah-blah </form> Mere blah-blah-blah <p align="center"> <img src="pics/dk_continue.gif" onClick="validate(FormA)"> </p>
04. august 2003 - 17:24
#9
Men bortset fra det så satte du mig på sporet af løsningen som er: <script type="text/javascript"> function validate(form1) { XXX = form1.XXX.value.toLowerCase() if (XXX=="" || XXX==" ") { alert("Udfyld venligst søgefeltet."); return false; } form1.submit() } </script> <form action="demo2.asp" id="FormA" method="post" onSubmit="return validate(FormA)"> <input name="XXX"> Blah-blah-blah <p align="center"> <img src="pics/dk_continue.gif" onClick="validate(FormA)"> </p> </form>
04. august 2003 - 17:25
#10
...dvs med et return foran validate() i foprm-taggen: <form action="demo2.asp" id="FormA" method="post" onSubmit="return validate(FormA)">
04. august 2003 - 17:25
#11
Smider du et svar?
04. august 2003 - 17:34
#12
Jamen velbekomme '-)
04. august 2003 - 18:04
#13
-- og tak for points ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling