Avatar billede nielle Nybegynder
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?
Avatar billede roenving Novice
04. august 2003 - 16:35 #1
Nu har jeg ikke lige set den der return (false) før, så prøv lige return false;
Avatar billede roenving Novice
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 ...
Avatar billede nielle Nybegynder
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.
Avatar billede nielle Nybegynder
04. august 2003 - 17:00 #4
...og det er det samme uden paraentes om false.

Hvilket i øvrigt er ganske lovlog JavaScript.
Avatar billede nielle Nybegynder
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.
Avatar billede roenving Novice
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 ...
Avatar billede nielle Nybegynder
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.
Avatar billede nielle Nybegynder
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>
Avatar billede nielle Nybegynder
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>
Avatar billede nielle Nybegynder
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)">
Avatar billede nielle Nybegynder
04. august 2003 - 17:25 #11
Smider du et svar?
Avatar billede roenving Novice
04. august 2003 - 17:34 #12
Jamen velbekomme '-)
Avatar billede roenving Novice
04. august 2003 - 18:04 #13
-- og tak for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester