有focusInvalid
选项,默认为true
。但它只在表单提交发生时才有效。如果我使用valid
方法验证表单,则它不起作用。那么问题是如何在使用valid
时关注无效字段?
请参阅this demo以了解其中的差异。只需按下那里的按钮。
答案 0 :(得分:54)
使用invalidHandler
,您可以将焦点设置为失败的第一个元素:
$("#form").validate({
onfocusout: false,
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
validator.errorList[0].element.focus();
}
}
});
答案 1 :(得分:49)
首先,您需要将验证器保存到变量中,以便在单击处理程序中使用它:
var validator = $("#test-form").validate({ /* settings */ });
然后在验证处理程序中,您可以从focusInvalid
变量手动调用validator
函数:
$("#validate").click(function() {
if ($("#test-form").valid())
alert("Valid!");
else
validator.focusInvalid();
return false;
});