如何使用jQuery验证无效字段?

时间:2012-04-11 18:35:44

标签: jquery jquery-validate

focusInvalid选项,默认为true。但它只在表单提交发生时才有效。如果我使用valid方法验证表单,则它不起作用。那么问题是如何在使用valid时关注无效字段?

请参阅this demo以了解其中的差异。只需按下那里的按钮。

2 个答案:

答案 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;
  });

Example