Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Formulieren valideren

Anoniem
Supersnail
3 antwoorden
  • Ik wil een klein formuliertje hebben die checkt of er iets is ingevuld en of er een emailadres staat.
    Onderstaande code zorgt ervoor dat er in alle velden iets ingevuld moet worden, maar een @ en een . zijn niet verplicht met deze code, waar zit de fout dat die dat niet doet?
    Ook moet ik ervoor zorgen dat er voor en na de @ iets staat, kan iemand mij op weg helpen, of een goede site voor javascript hulp geven?

    Chris


    [code:1:d473c68cda]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <script language="JavaScript">
    <!–
    function controleer(formulier)
    {
    if(formulier.subject.value == "" || formulier.bodyText.value == "" )
    { alert("Het formulier is niet goed ingevuld"); }
    else
    { document.formulier.submit(); }

    if(tekst.toAddress.value =="" || tekst.toAddress.value.indexOf("@") == -1 || tekst.toAddress.value.indexOf(".") == -1)
    { alert("E-mailadres is niet geldig."); }

    if(tekst.fromAddress.value =="" || tekst.email.value.indexOf("@") == -1 || tekst.toAddress.value.indexOf(".") == -1)
    { alert("E-mailadres is niet geldig."); }
    }
    //–>

    </script>
    <title>Formulier</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>

    <FORM name="formulier" ACTION="sendmail.php" METHOD="get" ENCTYPE="text/plain">
    E-mail adres<BR>
    <INPUT TYPE="text" NAME="toAddress" SIZE="40"><BR>
    Your E-mail adres<BR>
    <INPUT TYPE="text" NAME="fromAddress" SIZE="40"><BR>
    Onderwerp<BR>
    <INPUT TYPE="text" NAME="subject" SIZE="40"><BR>
    Boodschap<BR>
    <TEXTAREA NAME="bodyText" COLS="40" ROWS="5"></TEXTAREA><BR>
    <INPUT TYPE="button" onClick="controleer(this.form)" VALUE="Verzend">
    <INPUT TYPE="reset" VALUE="Wis">
    </FORM>

    </body>
    </html>
    [/code:1:d473c68cda]
  • Je verzendt het formulier te vroeg.
    [code:1:b8e8cb6322]<snip>
    if(formulier.subject.value == "" || formulier.bodyText.value == "" )
    {
    alert("Het formulier is niet goed ingevuld");
    }
    else
    {
    document.formulier.submit();
    }
    <snip>
    [/code:1:b8e8cb6322]

    Als subject en bodyText niet leeg zijn verzend je het formulier al met de submit functie. Hierna controleer je pas of de ingevulde e-mailadressen geldig zijn.

    Een betere methode om een e-mailadres te controleren is door gebruik te maken van een reguliere expressie. Code, uitleg en een voorbeeld kan je vinden op bijvoorbeeld http://www.breakingpar.com/bkp/home.nsf/Doc!OpenNavigator&87256B280015193F87256C40004CC8C6 (het is me niet gelukt hier een link van te maken, gewoon even hele adres kopiëren en in de adresbalk plakken).
  • Nu werkt het formulier redelijk, maar bij een emailadres moet natuurlijk ook een paar letters voor en na de @ staan, hoe kan ik daarvoor zorgen?

    [code:1:c5fb95444e]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <script language="JavaScript">
    <!–
    function controleer(formulier)
    {
    if(formulier.subject.value == "" || formulier.bodyText.value == "" )
    {
    alert("Het formulier is niet goed ingevuld");
    return false
    }

    else if(formulier.toAddress.value == "" || formulier.toAddress.value.indexOf('@') == -1 || formulier.fromAddress.value.indexOf('.') == -1)
    {
    alert("Geen geldig e-mailadres")
    return false
    }

    else if(formulier.fromAddress.value == "" || formulier.fromAddress.value.indexOf('@') == -1 || formulier.fromAddress.value.indexOf('.') == -1)
    {
    alert("Geen geldig e-mailadres")
    return false
    }


    }
    //–>

    </script>
    <title>Formulier</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>

    <FORM name="formulier" ACTION="sendmail.php" METHOD="get" ENCTYPE="text/plain">
    E-mail adres<BR>
    <INPUT TYPE="text" NAME="toAddress" SIZE="40"><BR>
    Your E-mail adres<BR>
    <INPUT TYPE="text" NAME="fromAddress" SIZE="40"><BR>
    Onderwerp<BR>
    <INPUT TYPE="text" NAME="subject" SIZE="40"><BR>
    Boodschap<BR>
    <TEXTAREA NAME="bodyText" COLS="40" ROWS="5"></TEXTAREA><BR>
    <INPUT TYPE="button" onClick="controleer(this.form)" VALUE="Verzend">
    <INPUT TYPE="reset" VALUE="Wis">
    </FORM>

    </body>
    </html>


    [/code:1:c5fb95444e]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.