2016-06-16 8 views
0

Ich versuche, beide Felder E-Mail-Adresse und Name zu validieren, aber nur E-Mail wird validiert und es wird nicht auf Namensfeld überprüft. Ich kann nicht herausfinden, was im Code falsch ist.Validierung mit Java-Skript

<html> 
<body> 
    <form name="myForm"> 
    Email: <input type="text" name="email" id="email2"> 
    <br> 
    Name: <input type="text" name=" fname"> 
    <button type="submit" name="submit" onclick="validateForm()">submit</button> 
    <br> email 
    <div id="email1"></div> 
    </form> 
</body> 
<script> 
    function validateForm() { 
    var x = document.forms["myForm"]["email"].value; 

    var atpos = x.indexOf("@"); 
    var dotpos = x.lastIndexOf("."); 
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) { 
     alert("Not a valid e-mail address"); 
     return false; 
    } 

    var email1 = document.getElementById("email2").value; 

    document.getElementById("email1").innerHTML=email1; 

    var y = document.forms["myForm"]["fname"].value; 
    if (y==null ||y=="") { 
     alert("name must be filled"); 
     return false;  
    } 
    } 
</script> 
</html> 
+3

das, weil ist, wenn E-Mail ungültig ist 'return false;' wird die Steuerung zurückzukehren und die Code unten wird nicht ausgeführt. – Tushar

+0

Sie können HTML5-Validierungen verwenden. ' – Tushar

+0

Die Validierung sollte im Übergabehandler des Formulars erfolgen, da das Formular ohne Klicken auf die Schaltfläche Senden gesendet werden kann. Wenn Sie einer Formularkontrolle den Namen "submit" geben, wird es unmöglich, die Methode * submit * des Formulars aufzurufen. – RobG

Antwort

1
<input type="text" name=" fname"> 

Es gibt einen Raum vor fname.That ist, warum es nicht ist working.You einfache Lösung versuchen können, wie diese

+0

Name: abhi110892

0

einen zusätzlichen boolean Fügen Sie Ihre Validierung

function validateForm() { 
    var x = document.forms["myForm"]["email"].value; 
    //Additional boolean 
    var success = true; 
    var atpos = x.indexOf("@"); 
    var dotpos = x.lastIndexOf("."); 
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) { 
     alert("Not a valid e-mail address"); 
     success = false; 
    } 
    var email1= document.getElementById("email2").value; 
     document.getElementById("email1").innerHTML=email1; 

    var y = document.forms["myForm"]["fname"].value; 
     if (y==null ||y=="") { 
      alert("name must be filled"); 
      success = false; 

    } 
    return success; 
    } 
1

Sie verpasst haben, zu überprüfen ID Namen geben: <input type="text" name=" fname"> Assign ID Name: <input type="text" name=" fname" id="fname">.

Als document.forms["myForm"]["fname"].value; erfordert dies Element-ID, um Wert zu holen.