我使用jQuery验证(),当我只是有:jQuery验证工作不正常
$("#myForm").validate({
onfocusout: function (valueToBeTested) {
if($(valueToBeTested).hasClass('required')){
if(this.element(valueToBeTested)){
$(valueToBeTested).addClass('valid');
} else{
$(valueToBeTested).addClass('invalid');
};
};
}
rules:
{
...(rules here)
}
});
它工作正常。但是,当我尝试添加像onkeyup
或submitHandler
:
$("#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:
{
...
}
});
它开始不工作: 1)在这种情况下,它似乎从来没有进入submitHandler
块。当我尝试在onkeyup
块中复制onfocusout
功能时也是如此。 2)当第二个块存在时,它会与onfocusout
块混淆,这是因为onfocusout
块将在任何给定字段中第一次工作,然后不会再次。
我觉得我失去了一些明显的东西,因为我认为我正在做文档说的东西。我想验证发生在所有三个。 onfocusout
和onkeyup
几乎是一样的,但submitHandler
应该做同样的事情,加上填充和显示错误div。
我在这里错过了什么?
谢谢。
谢谢。我实际上移过了这段代码。当我等待某人回答时,我明白了。 :) –
好吧,所以你说如果我只是把错误类:“无效”,它会处理该部分,但有效的类呢?我会在哪里定义那个? –
没关系。我刚刚发现。 –