Die Lösung sollte ziemlich einfach sein. Ich versuche zu verhindern, dass das Formular ordnungsgemäß übermittelt wird, wenn in den Eingabefeldern kein Wert gefunden wird. Hier ist mein JSFiddle: http://jsfiddle.net/nArYa/7/Verwenden von jQuery, um das Senden von Formularen zu verhindern, wenn die Eingabefelder leer sind
// Markup
<form action="" method="post" name="form" id="form">
<input type="text" placeholder="Your email*" name="email" id="email">
<input type="text" placeholder="Your name*" autocomplete=off name="name" id="user_name"
<button type="submit" id="signup" value="Sign me up!">Sign Up</button>
</form>
// jQuery
if ($.trim($("#email, #user_name").val()) === "") {
$('#form').submit(function(e) {
e.preventDefault();
alert('you did not fill out one of the fields');
})
}
Wie Sie im JSFiddle sehen können, das Problem ist, dass, wenn ich schreibe etwas in beide Felder, die Alarmbox STILL erscheint. Es fällt mir schwer herauszufinden, warum. Ist etwas falsch in meinem if ($. Trim ($ "# E-Mail, #Benutzername"). Val()) === "")?
Ja, Sie sollten jede von ihnen einzeln überprüfen, wenn Sie nur einen Selektor verwenden, nur ein Wert –
Aus der Dokumentation zurückgegeben werden: den aktuellen Wert des Get ** zuerst ** Element in der Menge der passenden Elemente – Barmar
Sie müssen eine JavaScript-Funktion an Ihre Absenden-Schaltfläche anhängen. Die Funktion gibt false zurück, wenn die Felder nicht gültig sind. –
chadiusvt