我有一个表单,其中文本字段的要求取决于无线电字段的值。当选中正确的无线电选项时,验证第一次正常工作。但是,如果我们更改无线电的值,即使为无线电检查了有效选项,文本字段上的错误消息也会保留。任何想法,如何在有效时删除错误?
这是我的验证码:
$().ready(function() {
$("#myform").validate({
rules: {
ff_24: "required",
ff_25: "required",
ff_26: {
required: {
depends: function(element) {
return ($('input[name="ff_25"]:checked').val() == 'Yes');
}
}
},
ff_28: "required",
ff_30: "required"
},
messages: {
ff_24: "This field is required",
ff_25: "This field is required",
ff_26: "This field is required",
ff_28: "This field is required",
ff_30: "This field is required"
},
errorPlacement: function(error, element) {
var container = $('<div />');
container.addClass('tooltip'); // add a class to the wrapper
if (element.attr('type') === 'radio') {
error.appendTo(element.parent());
}
else if (element.attr('type') === 'checkbox') {
error.insertAfter(element.next());
}
else {
error.insertAfter(element);
}
error.wrap(container);
$("<div class='errorImage'></div>").insertAfter(error);
},
success: function(element) {
$(element).addClass("checked");
return false;
}
});
});
答案 0 :(得分:4)
我很确定depends
有点弃用,即使文档没有提到它
你应该改为:
required: function(element) {
return ($('input[name="ff_25"]:checked').val() == 'Yes');
}
此外,您应该尝试添加onclick: true, onfocusout: true
onfocusout:在模糊上验证元素(复选框/单选按钮除外) onclick:点击时验证复选框和单选按钮。
http://docs.jquery.com/Plugins/Validation/validate#options(不能直接链接,点击选项并向下滚动)