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