Avatar billede spm Nybegynder
02. april 2006 - 18:33 Der er 15 kommentarer og
1 løsning

Disable submit når 2 password ikke er ens og andre felter er tomm

Hej.
Normalt laver jeg hjemmesider i PHP, men nu har jeg brug for noget i javascript - hvilket jeg ikke kender så meget til.
Jeg har en form:
<input type=text name=username>
<input type=text name=pass>
<input type=password name=pass2>
<input type=password name=email>
<input type=text name=birth>

Hvordan får jeg disblet submitknappen når pass er forskellig fra pass2? og hvordan hvis felterne generelt står tomme?
Avatar billede mclemens Nybegynder
02. april 2006 - 18:42 #1
koden kan jo læses i vis kilde ???
- men her er en ...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
<!--
function testinput(){
if(document.getElementById("pass").value!=document.getElementById("pass2").value)return false;else return true;
}
//-->
</script></head>

<body>
<form method="POST" action="#123" onSubmit="return testinput();">
<input type=text name=username>
<input type=text id="pass" name=pass>
<input type=password id="pass2" name=pass2 value="skjules">
<input type=password name=email>
<input type=text name=birth>
<input type="submit" value="afsend">
</form>

</body></html>
Avatar billede mclemens Nybegynder
02. april 2006 - 18:42 #2
... og hvis javascript er disabled virker det ikke :/
Avatar billede olebole Juniormester
02. april 2006 - 18:47 #3
<ole>

<script type="text/JavaScript">
function valider(f) {
    if (f.username.value=="") {
        alert("Feltet 'Brugernavn' må ikke være tomt");
        return false;
    }
    if (f.pass.value=="") {
        alert("Feltet 'Kodeord' må ikke være tomt");
        return false;
    }
    if (f.pass2.value=="") {
        alert("Feltet 'Gentag kodeord' må ikke være tomt");
        return false;
    }
    if (f.pass.value!=f.pass2.value) {
        alert("Felterne 'Kodeord' og 'Gentag kodeord' skal være ens udfyldt");
        return false;
    }
    return true;
}
</script>
<form action="" method="post" onsubmit="return valider(this)">
    <input type=text name=username>
    <input type=text name=pass>
    <input type=password name=pass2>
    <input type=password name=email>
    <input type=text name=birth>
    <button type="submit">Send</button>
</form>

- så kan du selv udvidde med andre felter  :)

/mvh
</bole>
Avatar billede spm Nybegynder
02. april 2006 - 19:14 #4
-ole:
skal det ikke være: onsubmit="return validere(f) ?? istedet for this?
Avatar billede spm Nybegynder
02. april 2006 - 19:16 #5
HA! nu fik jeg det til at virke!!
det er jo perfekt!! TAK

kommer du med et svar ole?
Avatar billede mclemens Nybegynder
02. april 2006 - 19:17 #6
nej, this sætter værdien til sig selv (den der kalder funktionen) nemlig formularen der kaldes for f i functionen der så finder inputs og kontrollerer dem en for en
Avatar billede spm Nybegynder
02. april 2006 - 19:18 #7
mclemens. Skal den ikke et eller andet sted finde " this " ??
Avatar billede mclemens Nybegynder
02. april 2006 - 19:22 #8
this er en foruddefineret variabel og reffererer altid til objektet det optræder i:

i dette tilfælde sendes objektet (hele referencen til formularen) op til funktionen... i funktionen angiver man hvad man vil kalde det objekt man har fået for ... i dette tilfælde f (alias) - herefter behøver man ikke bruge getElementById og lignende men kan bare bruge f...

(blev det for indviklet ?)
Avatar billede spm Nybegynder
02. april 2006 - 19:23 #9
Nej. Det giver ok mening.. MEn tror nu stadig jeg må ned og købe en java bog ;)
det er bare lige med at finde tiden til det
Avatar billede mclemens Nybegynder
02. april 2006 - 19:24 #10
return gør så at den får besked tilbage om formularen skal afsendes eller ej... hvis der ingen fejl er sender funktionen true; tilbage til funktions opkaldet og formularen afsendes ellers false; og formularen afsendes ikke
Avatar billede mclemens Nybegynder
02. april 2006 - 19:26 #11
Avatar billede mclemens Nybegynder
02. april 2006 - 19:28 #12
min første og eneste bog var javascript 1.5 fra IDG, den er nok ikke helt up2date med dom metoder m.v. og starter med at sige denne bog fokusserer kun på IE... så den er måske ikke helt optimal - IDG har nok nogle nyere :P
Avatar billede olebole Juniormester
02. april 2006 - 19:29 #13
- og et svar  :)
Avatar billede mclemens Nybegynder
02. april 2006 - 19:36 #14
p.s. denne er unødvendig: (da pass skal være andet end ingenting og pass==pass2 skal pass2 samtidig i forvejen være andet end ingenting)

    if (f.pass2.value=="") {
        alert("Feltet 'Gentag kodeord' må ikke være tomt");
        return false;
    }
Avatar billede olebole Juniormester
02. april 2006 - 19:39 #15
- nuvel, eksemplet var blot beregnet på at vise princippet ... men du har da helt ret  :)
Avatar billede mclemens Nybegynder
02. april 2006 - 19:43 #16
var også kun et lille tip :)
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