Avatar billede stig69 Nybegynder
12. oktober 2003 - 17:11 Der er 10 kommentarer og
2 løsninger

Javascript validering

Jeg har en side med to frames, en kaldet topframe og en kaldet lowerframe.

En af siderene i lowerframe kører en valideringsfunktion:

Koden:
<html>
<head>
<SCRIPT LANGUAGE="JavaScript1.2">
function verify() {
  if (document.indskriv.virksomhed.value == "") {
  alert ('Feltet Virksomhed skal udfyldes');
  return false;
}
}
</SCRIPT>
</head>
<body>
<form name="indskriv" ACTION="confirm_indskriv.php" METHOD="POST">
<table>
  <tr>
    <td>Virksomhed<input type="text" name="virksomhed" size="25" maxlength="35"></td>
  </tr>
  <tr>
    <td><input type="image" name="submit" border="0" src="images/indskriv_knap.gif" onclick="verify()"></td>
  </tr>
</table>
</form>
</body>

</html>

Problemet er: at efter validering, hvis der er fejl, returneres man ikke til ’fejlsiden’/indskrivningssiden igen, men direkte til siden confirm_indskriv.php.

Hvorledes løser jeg det problem, så indskrivningssiden bliver reloadet igen med de indtastede værdier?

Stig
Avatar billede thesurfer Nybegynder
12. oktober 2003 - 17:20 #1
prøv med:
onSubmit="verify()"

i stedet for onClick..
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 17:20 #2
Brug

<form name="indskriv" ACTION="confirm_indskriv.php" METHOD="POST" onsubmit="return verify()">

og lave den til

function verify() {
  if (document.indskriv.virksomhed.value == "") {
    alert ('Feltet Virksomhed skal udfyldes');
    return false;
  }
  return true;
}
Avatar billede thesurfer Nybegynder
12. oktober 2003 - 17:21 #3
altså:
<form name="indskriv" ACTION="confirm_indskriv.php" METHOD="POST" onSubmit="verify()">
...
<input type="image" name="submit" border="0" src="images/indskriv_knap.gif">
Avatar billede stig69 Nybegynder
12. oktober 2003 - 17:26 #4
Det ser ud til at I begge havde ret og var lige hurtige på tasterne, er det iorden hvis I deler pointene? Hvordan kan det være at det ikke virkede med onClick? Det kan måske slet ikke lade sig gøre med onClick?

Stig
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 17:29 #5
Det er jo ikke sikkert man klikker på den. Hvad hvis man trykker retur i feltet?
Men bemærk lige at thesurfer ikke giver dig hele sandheden:

1) onsubmit virker ikke uden return - ikke altid i hvert fald
2) Funktionen skal returnere enten true eller false, eller virker den ikke -
    ikke altid i hvert fald.
Avatar billede stig69 Nybegynder
12. oktober 2003 - 17:33 #6
Jeg tænkte mere på, hvorfor man ikke kommer tilbage til indskrivningssiden men springer direkte til confirm siden?
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 17:38 #7
Med onclick? Aner det ikke - for man skal ikke bruge det til form-validering ;))
Avatar billede thesurfer Nybegynder
12. oktober 2003 - 17:42 #8
takker for info'en, erikjacobsen :)
.. skal prøve at huske det til næste gang :)
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 17:44 #9
Man bliver snydt, thesurfer, af at det sommetider virker alligevel..... ;)
Avatar billede olebole Juniormester
13. oktober 2003 - 00:18 #10
<ole>

Du kan i princippet godt lave det med onclick på en knap (om det er en submit-knap er ligegyldigt). Så skal du i form-tag'et skrive:
  onsubmit = "return false"
og slutte din validerings-funktion med:
  document.FORMNAVN.submit();

onsubmit-handleren fyres nemlig ikke af, når en form submittes via JavaScript.

Dette kun for fuldstændighedens skyld  :)
/mvh
</bole>
Avatar billede stig69 Nybegynder
13. oktober 2003 - 08:13 #11
olebole--> Det mente jeg da også. Tak for indlægget
Avatar billede olebole Juniormester
13. oktober 2003 - 10:44 #12
... anytime  :)
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