Avatar billede greatdanes Nybegynder
14. maj 2007 - 13:45 Der er 12 kommentarer og
1 løsning

Form mail

Jeg har en form mail, hvori brugeren bedes bekræftet sin mail adresse og hvor jeg så har en validering af dette og 2 andre felter og ingen problemer i det. Men formen sender stadigvæk selvom der er i fejl i felterne. Hvordan får jeg den til at lade være med dette?

Her er funktionen som tjekke om brugeren har udfyldt felterne korrekt:
<script language="JavaScript" type="text/javascript">
    function go() {
        if (document.haldForm0.telefon.value.length < 8){alert('Der er en fejl i indtastet telefon nummer - skriv det venligst igen!');
        return false;
        }
        else if (document.haldForm0.fdato.value.length < 8){alert('Indtast venligst din fødselsdato korrekt: eks. 01-01-1999');
        return false;
        }
        else if (document.haldForm0.email2.value.length < document.haldForm0.email.value.length){alert('Kontroller venligst din e-mail adresse');
        return false;
        }
        else if (document.haldForm0.email2.value.length > document.haldForm0.email.value.length){alert('Kontroller venligst din e-mail adresse');
        return false;   
        }else{
            haldForm.submit();
        }
    }
</script>

Det skal til lige siges at valideringen ligger i forbindelse med submit funktionen, hvis det kan hjælpe.
Samt, at hvis der er fejl i et af felter, kommer der godt nok et vindue med fejlmeddelse, men når du så trykker "ok", sender formen alligevel istedet for at lade bruger rette fejlene.
Avatar billede roenving Novice
14. maj 2007 - 14:09 #1
Hvis du nu kalder fra onsubmit, kan du:

onsubmit="return go(this);"

-- og

<script type="text/javascript">
    function go(f) {
        if (f.telefon.value.length < 8){alert('Der er en fejl i indtastet telefon nummer - skriv det venligst igen!');
        f.telefon.focus();
        return false;
        }
        if (f.fdato.value.length < 8){alert('Indtast venligst din fødselsdato korrekt: eks. 01-01-1999');
        f.fdato.focus();
        return false;
        }
        if (f.email2.value.length != f.email.value.length){alert('Kontroller venligst din e-mail adresse');
        f.email.focus();
        return false;
        }
        return true;
    }
</script>
Avatar billede crazysnap Seniormester
14. maj 2007 - 14:11 #2
Hej greatdanes,


Det kommer lidt an på hvordan dit html kode ser ud, men hvis der trykkes på en submit knap skal du huske at kalde metoden med return foran, f.eks:


onclick="return go();"


Og når go så returnerer false sumittes formen ikke.


Mvh.

- Snap
Avatar billede crazysnap Seniormester
14. maj 2007 - 14:13 #3
(når roenving kom vidst først der) ;)
Avatar billede greatdanes Nybegynder
14. maj 2007 - 14:22 #4
Hmm - det først afhjalp ikke mit problem - eneste forskel var at der nu overhovedet ikke kom en fejlmeddelse.

Linen der kaldes fra ser ud:
<input type="submit" value="Send forespørgsel" onClick="go();" >
Avatar billede crazysnap Seniormester
14. maj 2007 - 14:30 #5
Hej greatdanes,


Ja så skal du bruge den løsning jeg foreslog (som er den samme som roenving, bare fra et andet sted i html-scriptet). Så prøv i stedet:


<input type="submit" value="Send forespørgsel" onClick="return go();" >


Mvh.

- Snap
Avatar billede greatdanes Nybegynder
14. maj 2007 - 14:40 #6
:( - virker stadig ikke
Få ikke nogen fejlmeddelse og formen sender bare.
Avatar billede greatdanes Nybegynder
14. maj 2007 - 14:52 #7
lol - ved ikke lige hvad der er sket, men efter at have prøvet foreslået tekst, rettede jeg tilbage til mit gammel tekst og nu virker skidtet :)

Men tak for jeres input - uden jer er personer som jeg fortabt - GJ

(hvem vil have pointene?)
Avatar billede crazysnap Seniormester
14. maj 2007 - 14:54 #8
Hej igen,

Det her skal ihvertfald virke (ved brug af roenvings eksempel)


<html xmlns="http://www.w3.org/TR/html401">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/JavaScript">
            function go(frm)
            {
                if (frm.telefon.value.length < 8)
                {
                    alert('Der er en fejl i indtastet telefon nummer - skriv det venligst igen!');
                    frm.telefon.focus();
                    return false;
                }
                if (frm.fdato.value.length < 8)
                {
                    alert('Indtast venligst din fødselsdato korrekt: eks. 01-01-1999');
                    frm.fdato.focus();
                    return false;
                }
                if (frm.email2.value.length != f.email.value.length)
                {
                    alert('Kontroller venligst din e-mail adresse');
                    frm.email.focus();
                    return false;
                }
               
                return true;
            }
        </script>
    </head>
    <body>
        <form name="haldForm0" onsubmit="return go(this);" action="http://www.google.dk">
        <input type="text" id="telefon"/>
        <input type="text" id="fdato"/>
        <input type="text" id="email2"/>
        <input type="text" id="email"/>
        <input type='submit' onclick="" value="Check Field" />
        </form>

    </body>
</html>


Mvh.

- Snap :)
Avatar billede crazysnap Seniormester
14. maj 2007 - 14:57 #9
Hov, se nu svarer jeg igen efter løsningen er fundet.. ;)


Anyways, glad for du har fået det til at virke og lad bare roenving få pointene, han var hurtigst med løsningen! :)


Mvh.

- Snap
Avatar billede greatdanes Nybegynder
14. maj 2007 - 15:03 #10
Hehe - Snap

Men det var skønt I gav jer tid til at se på det.
Avatar billede greatdanes Nybegynder
14. maj 2007 - 15:05 #11
Hmm - kan ikke give pointene til nogen siden det kun var en kommentar og ikke et svar...
Avatar billede roenving Novice
14. maj 2007 - 15:56 #12
Velbekomme '-)
Avatar billede roenving Novice
14. maj 2007 - 17:10 #13
-- og tak for point ;~}
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