Avatar billede artery_graphics Nybegynder
15. januar 2002 - 10:56 Der er 4 kommentarer og
1 løsning

Validering af formmail script

Hvordan undgår jeg at dette script viser ALERT meddellelsen, når indtastninger mangler? Script skal køres i et popup vindue, der aktiveres fra Flash.

Kan koden evt. også optimeres lidt?

Hvis INDTASTNING mangler, skal i stedet for visning af Alert intet ske ved submit. Først ved indtastning i alle nævnte felter, fungerer submit knappen.

Med venlig hilsen ... Lars



<script language=\"JavaScript\">
<!--

function Checkform(thisform) {
    //
    strError = \'\';
    intError = 0;
       
    // Check for @ i email
    if (thisform.email.value.indexOf(\"@\") == -1 && thisform.email.value != \"\")
    {
    strError = strError + \'\'
    intError = 1;
    thisform.email.focus();

    }   

    //
    if (thisform.name.value == \"\")
    if (thisform.email.value == \"\")
    if (thisform.address.value == \"\")
    if (thisform.city.value == \"\")
    if (thisform.country.value == \"\")
    if (thisform.zip.value == \"\")

    {
    strError = strError + \'Fejl! Indtast noget\'
    intError = 1;
    thisform.name.focus();

    }
   
    if (intError == 1) {
    alert(strError)
    return false;
    }
   
}
</script>

onSubmit=\"return Checkform(this);\">
Avatar billede nikolajdu Nybegynder
15. januar 2002 - 11:30 #1
Synes din roder lidt, så hvis du tager min (Den kan nemt ændres :)) )

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>Valid Form</title>
    <script>
   
    function vali(hvad){

    if (document.nybruger.navn.value.indexOf(\' \')!=-1||document.nybruger.navn.value==\"\"){ // tjekker om der er mellemrum eller om der intet er i feltet navn
    alert(\'ingen mellemrum\') // giver fejlmeddelse
    document.nybruger.navn.focus() // sætter focus på felter navn
    return false // returner false, da der er fejl i formen
    }else if(document.nybruger.efternavn.value==\"\"){ // tjekker om der er skrevet noget i feltet efternavn
    alert(\'mangler efternavn\')
    document.nybruger.efternavn.focus()
    return false
    }else if (document.nybruger.mail.value.indexOf(\'@\')==-1||document.nybruger.mail.value==\"\"){ // tjekker om der er findes et @ eller om der intet er i feltet mail
    alert(\'Email makker\') // giver fejlmeddelse
    document.nybruger.mail.focus() // sætter focus på feltet mail
    return false // returner false, da der er fejl i formen
    }else if(document.nybruger.pass1.value==\"\"){ // tjekker om der er skrevet noget i feltet pass1
    alert(\'mangler pass1\')
    document.nybruger.pass1.focus()
    return false
    }else if(document.nybruger.pass2.value==\"\"){ // tjekker om der er skrevet noget i feltet pass2
    alert(\'mangler pass2\')
    document.nybruger.pass2.focus()
    return false
    }else if(document.nybruger.pass1.value!=document.nybruger.pass2.value){ // tjekker om pass1 og pass2 er forskellige
    alert(\'Pass ikke end\')
    document.nybruger.pass1.focus()
    return false
    }
    else if(document.nybruger.huske.value==\"\"){ // tjekker om der er skrevet noget i feltet husketekst
    alert(\'mangler huske\')
    document.nybruger.huske.focus()
    return false
    }else
    return true // alle er gået igennem og der var ingen fejl så vi sender formen af sted
   
}
   
   
    </script>
</head>

<body>
<Form name=\"nybruger\" action=\"/script/opretbruger.php\" onsubmit=\"return vali(this)\">

<Br>              Navn: <Input type=\"text\" name=\"navn\" size=\"20\"> INGEN MELLEMRUM
<Br>              Efternavn: <Input type=\"text\" name=\"efternavn\" size=\"20\">
<Br>              Fødselsdag: Navn: <Input type=\"text\" size=\"8\" value=\"DD-MM-ÅÅ\" name=\"fodsdag\">
<Br>              Leder: <Input type=\"checkbox\" name=\"leder\"> Grupperåd: <Input type=\"checkbox\" name=\"grp\"> Daglig ledelse: <Input type=\"checkbox\" name=\"dl\"> Udvalg: <Input type=\"checkbox\" name=\"udv\">
<Br>              Email: <Input type=\"password\" name=\"mail\" size=\"10\">
<Br>              Ønsket password: <Input type=\"password\" name=\"pass1\" size=\"10\"> 
<Br>              Gentag password: <Input type=\"password\" name=\"pass2\" size=\"10\">
<Br>              Husketekst: <Input type=\"text\" name=\"huske\" size=\"50\">
<Br>              <Input type=\"submit\" value=\"Send\" name=\"sendMe\"> <Input type=\"reset\" value=\"Reset\">

</Form>


</body>
</html>

Og så fra Flashen:

on (release) {
    getURL (\"javascript.document.nybruger.sendMe.click()\", \"_blank\");
}


_blank eller _self afhængigt af om der skal komme nyt vindue eller ej.

/Nikolaj
Avatar billede artery_graphics Nybegynder
15. januar 2002 - 13:51 #2
Men dit script viser jo også en ALERT meddelse.
Det er det jeg gerne vil undgå. Jeg gider ikke se på disse alert. Hvis en indtastning mangler, skal den ikke gå videre når SUBMIT trykkes... ikke før alle indtastningfelter er udfyldt.

Kan det lade sig gøre?
Avatar billede nikolajdu Nybegynder
15. januar 2002 - 14:02 #3
Du kan bare fjerne alle alert(\'blabla\')
Avatar billede artery_graphics Nybegynder
15. januar 2002 - 21:40 #4
Tak det virker fint
Avatar billede nikolajdu Nybegynder
16. januar 2002 - 12:59 #5
:)=)
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