Ich habe gerade angefangen, jQuery zu lernen und liebe es schon, aber meine Fähigkeiten reichen noch nicht aus, um dieses wahrscheinlich einfache Problem für meine Arbeit zu lösen: Ich habe 3 verschiedene Formen mit einem Eingabefeld sofort durch Submit-Button gefolgt:jQuery: Formularübergabe verhindern, wenn das Feld vor dem Senden leer ist
ich mag Formularübermittlung verhindern, wenn das Texteingabefeld oder das Textfeld vor der Submit-Button leer.
$(function() {
$(':submit').click(function(e) {
$(':text').each(function() {
if ($(this).val().length == 0) {
$(this).css('border', '2px solid red');
}
});
e.preventDefault();
});
});
Aber es hat folgende Probleme: Ich habe einen Ausschnitt aus der jQuery Ninja book gestohlen
- Es das Textfeld in der letzten Form ignoriert, weil
$(':text').each()
nicht darauf gilt
- Es spielt keine 't erlaube das Einreichen eines Formulars - Ich denke, ich muss
preventDefault()
unter einem "if" verschieben - Ich sollte wahrscheinlich besser
prev()
statteach()
verwenden
- Wenn der Benutzer ihre Meinung ändert und klickt auf eine andere Form, sollte die bisherige Form
mich Könnte bitte gelöscht jemand helfen? Alex
UPDATE:
Ich habe versucht:
$(function() {
$(':submit').click(function(e) {
$(this).prev(function() {
if ($(this).val().length < 2) {
// would be good to clear border for
// each text and textarea here...
$(this).css('border', '2px solid red');
e.preventDefault();
}
});
});
});
aber leider 2 Warnungen erhalten:
Warning: Unexpected token in attribute selector: '!'.
Warning: Unknown pseudo-class or pseudo-element 'submit'.
und die rote Grenze erscheint nicht und das Formular gesendet, wenn auf eine Schaltfläche geklickt wird.
Auch habe ich versucht:
$(function() {
$('form').submit(function(e) {
$(':text, textarea').each(function() {
if ($(this).val().length < 2) {
$(this).css('border', '2px solid red');
e.preventDefault();
}
});
});
});
aber die Form ist nie vorgelegt und alle drei Textfelder rot statt nur einem.
anstelle von '$ (': submit'). Click()' versuchen Sie das gleiche in '$ ('form'). Submit();' – naiquevin
Vielleicht hilft diese ähnliche Frage: http: // stackoverflow .com/questions/2119187/jquery-form-submission-parameter-check – fncomp