jQuery validate funktioniert nicht wie erwartet
Ich verwende jQuery validate () und wenn ich einfach habe:
$("#myForm").validate({
onfocusout: function (valueToBeTested) {
if($(valueToBeTested).hasClass('required')){
if(this.element(valueToBeTested)){
$(valueToBeTested).addClass('valid');
} else{
$(valueToBeTested).addClass('invalid');
};
};
}
rules:
{
...(rules here)
}
});
es funktioniert gut. Aber wenn ich versuche, so etwas wie @ hinzuzufügonkeyup
odersubmitHandler
:
$("#myForm").validate({
onfocusout: function (valueToBeTested) {
if($(valueToBeTested).hasClass('required')){
if(this.element(valueToBeTested)){
$(valueToBeTested).addClass('valid');
} else{
$(valueToBeTested).addClass('invalid');
};
};
},
submitHandler: function(i){
var badForm = false;
var errmsg = "<img src=\"invalid.png\"/><br/>";
var $required_fields = $(".required");
$required_fields.each( function(i) {
if(!($(i).valid())){
errmsg += $(i).name + " is required<br/>";
badForm = true;
}
if(badForm){
alert("bad");
$('#errdiv').html(errmsg).show();
window.scrollTo(0,0);
}
});
},
rules:
{
...
}
});
it fängt an nicht zu funktionieren: 1) In diesem Szenario scheint es, dass Sie niemals das @ eingebesubmitHandler
Block. Das gleiche gilt, wenn ich versuche, das @ zu dupliziereonfocusout
Funktionalität innerhalb einesonkeyup
Block. 2) Wenn der zweite Block vorhanden ist, stört er dasonfocusout
Block in dem Sinne, dass dieonfocusout
Block wird das erste Mal in einem bestimmten Feld funktionieren, dann nicht erneut.
Ich habe das Gefühl, dass ich etwas Offensichtliches vermisse, da ich denke, dass ich das tue, was in der Dokumentation steht. Ich möchte, dass die Validierung für alle drei erfolgt. Dasonfocusout
undonkeyup
sind ziemlich gleich, aber diesubmitHandler
sollte das gleiche tun, plus füllen und zeigen die Fehler div.
Was fehle ich hier?
Vielen Dank