Ich habe ein Formular, das ich jQuery verwenden, um zu validieren, dass die Eingaben nicht leer sind. (Ich verwende auch Bootstrap)jQuery Form Validierung (wenn == "" dies tun) funktioniert nur bei der ersten Eingabe
<form action="" method="post">
<div id="name_input" class="form-group">
<input id="name" type="text" name="name" placeholder="Name">
<span class="glyphicon glyphicon-remove form-control-feedback name_span></span>
</div>
<div id="email_input" class="form-group">
<input id="email" type="email" name="email" placeholder="Email">
<span class="glyphicon glyphicon-remove form-control-feedback email_span></span>
</div>
<input type="submit" name="submit" value="save">
</form>
mit jQuery
$(document).ready(function() {
$('.form-control-feedback').hide();
$(".submit").click(function() {
var name = $("#name").val();
if (name == "") {
$("#name_input").addClass("has-error has-feedback");
$(".name_span").show();
return false;
}
var email = $("#email").val();
if (email == "") {
$("#email_input").addClass("has-error has-feedback");
$(".email_span").show();
return false;
}
});
});
, wenn ich diesen Code verwenden und beide Eingänge sind leer, die Klassen „hat-Fehler“ und „hat Feedback“ nur anhängen zum ersten Eingang.
Wenn die erste Eingabe ausgefüllt ist und die zweite leer ist, fügt die Klasse die zweite hinzu, und wenn ich auch die erste leere, bekomme ich auch die Klassen.
aber wenn ich das anders herum mache, so ist der erste zuerst leer und der zweite Eingang ist leer, danach fügen die Klassen nur noch den ersten hinzu.
Auch wenn ich einen von ihnen in füllen, möchte ich removeClass aber ich kann das nicht mit:
} else {
$("#name_input").removeClass("has-error has-feedback");
$(".name_span").hide();
}
da, dass die Form und offensichtlich einreichen kann ich nicht return false;
seit dem Willen hinzufügen Verhindere, dass das Formular verarbeitet wird, selbst wenn es ausgefüllt ist ... Irgendwelche Vorschläge zu diesen?
"Wenn die erste Eingabe ausgefüllt ist und die zweite leer ist, fügt die Klasse die zweite hinzu, und wenn ich auch die erste leere, bekomme ich auch die Klassen." Um dies zu ändern, müssen Sie die Felder zurücksetzen, bevor Sie die Prüfung erneut ausführen. – nurdyguy
Anstatt nach jedem Check false zurück zu geben, möchten Sie wahrscheinlich nur eine Flagge setzen und dann am Ende prüfen. – j08691
@nurdyguy aber das ist kein Problem, wenn beide leer sind Ich möchte beide einen Fehler haben, aber ich denke, dass Sie meinen, wenn ich den leeren ausfüllen und dann den gefüllten löschen? – Pixeldoris