2016-07-27 16 views
3

Der relevante Teil des Codes wird unten angezeigt. Wenn ich auf die Schaltfläche Senden klicke, werde ich in der Alarmbox undefiniert statt der eingegebenen E-Mail. Welchen Fehler mache ich hier?jquery .val() gibt undefined zurück

<form action="page2.php" method="post" onsubmit="myFunction()" id="form1"> 
     ...... 
     <input type="text" name="YourEMail" style="width: 250px;"> 
     <input type="submit" name="submit" value="Submit"> <br> 
     ...... 
</form> 

<script> 
$('#form1').submit(function() { 
    //your validation rules here 
    var email = $('#YourEMail').val() 
    alert(email) 
    //if(email.length == 0) 
     return false; 
    //else 
    // return true; 
}); 
</script> 

Antwort

9

YourEMail ist die name, nicht die id:

var email = $('input[name=YourEMail]').val(); 

Oder die input ändern, um die id zu haben:

<input type="text" id="YourEMail" name="YourEMail" style="width: 250px;"> 
+0

Sie schlagen mich einfach. :) – Daan

+1

oder zum Tag hinzufügen

+0

Bereits dort, @PaulSwetz! ;) – eisbehr

1

Sehen Sie sich diese Arbeits Geige https://jsfiddle.net/3h4n6qfe/1/

Sie sind Aufruf ein id und jQuery es als null zurückkehrt, da es keine id für Ihr Eingabefeld von

ändern ist:

<input type="text" name="YourEMail" style="width: 250px;"> 

An:

<input type="text" name="YourEMail" id="YourEMail" value="My Email" style="width: 250px;"> 

und du bist gut zu gehen!

+1

Verwenden Sie Stack-Überlauf Code-Simulator anstelle von jsfiddle – Black

+0

@EdwardBlack viele hier verwendet 'jsfiddle', gibt es kein Problem damit. Er kann tun, wie er will ... – eisbehr

+1

Und was machen wir, wenn jsfiddle offline ist? Warum einen externen Code-Simulator verwenden, wenn stackoverflow seinen eigenen Code hat ?! – Black