使用jQuery验证器禁用自动输入焦点

Disable automatic input focus with jQuery validator

本文关键字:输入 焦点 jQuery 验证 使用      更新时间:2023-09-26

我正在使用jQuery Validator,我希望能够禁用默认的焦点行为。

我将字段名称作为值直接包含在输入字段本身中(就像您在Stack Overflow右上角的"搜索"输入中看到的那样)。这里的问题是,当我提交表单时,一个字段被标记为无效,它会自动关注该字段,从而删除字段值。

这可能会让用户感到困惑,因为他们不再知道该特定字段的用途。有什么方法可以禁用这种行为吗?

我在下面包含了我的代码,以防有帮助:

$(document).ready(function(){
    jQuery.validator.messages.required = "";
    jQuery.validator.addMethod("notEqual", function(value, element, param) {
        return this.optional(element) || value !== param;
    }, "");
    $("#quoteForm").validate({
        rules: {
            firstName: {
                required: true,
                notEqual: "First name"
            },
            email: {
                required: function(element) {return $("#emailAdd").val() == '';},
                notEqual: "Email",
                email: false
            },
            phone: {
                required: function(element) {return $("#phoneNum").val() == '';},
                notEqual: "Phone",
                phoneUS: false
            }
        }
    });
});

我找到了答案,只想在这里分享:

我只需要使用focusInvalid: false

使用Jeremy的答案如下:

    $("#contactForm form").validate({
            focusInvalid: false,
            rules: {
                name: "required",
                email: {
                    required: true,
                    email: true
                },
                message: "required"
            },
            messages: {
                name: 'Fill in name',
                email: 'Fill in email',
                message: 'Fill in message'
            },
            submitHandler: function(form) {
                return SubmitContactForm();
            }
        });