jquery - 使用 Jquery 验证器选择显示所选搜索文本框的错误

标签 jquery jquery-validate jquery-chosen

在我的项目中,我使用chosen下拉列表和Jquery验证器。我在验证函数中添加了 ignore: [] 。现在的问题是,

验证器验证所选插件中的搜索文本框并在调试中显示以下错误

enter image description here

在我的页面中,有 3 个选择,如下图所示

enter image description here

下面显示的文本字段显示上述错误该文本字段由所选插件自动生成,并且没有名称

enter image description here

我用于验证的示例代码是

function validateUserForm() {
$('#user-master-form').validate({
    debug: true,
    ignore: [],
    rules: {
        first_name: {
            required: true,
            minlength: 3,
            maxlength: 100
        },
        last_name: {
            maxlength: 100
        },
        email: {
            required: true,
            email: true
        },
        mobile: {
            required: true,
            number: true,
            maxlength: 15,
            minlength: 10
        },
        date_of_birth: {
            required: true
        },
        gender: {
            required: true
        },
        address: {
            required: true,
            maxlength: 200
        },
        state: {
            required: true
        },
        district: {
            required: true
        }
    },
    messages: {
        first_name: {
            required: "Please enter first name",
            minlength: jQuery.validator.format("At least {0} characters required!"),
            maxlength: jQuery.validator.format("Up to {0} characters allowed!")
        },
        last_name: {
            maxlength: jQuery.validator.format("Up to {0} characters allowed!")
        },
        email: {
            required: "Please enter email id",
            email: 'Invalid email format',
        },
        mobile: {
            required: "Please enter mobile",
            number: 'Only numbers allowed',
            minlength: jQuery.validator.format("At least {0} numbers required!"),
            maxlength: jQuery.validator.format("Up to {0} numbers allowed!")
        },
        date_of_birth: {
            required: "Please enter date of birth"
        },
        gender: {
            required: "Please select gender"
        },
        address: {
            required: "Please enter address",
            maxlength: jQuery.validator.format("Up to {0} characters allowed!")
        },
        state: {
            required: "Please select state"
        },
        district: {
            required: "Please select district"
        }
    },
    errorPlacement: function (error, element) {
        if (element.hasClass("chosen")) {
            var id = element.attr('id');
            error.insertAfter("#" + id + "_chosen");
        }
        else if (element.parent('.vd_radio').length) {
            error.insertAfter(element.parent());
        }
        else {
            error.insertAfter(element);
        }
    }
});
}

请帮我解决这个问题。我被困在这里了。如有任何帮助,我们将不胜感激

最佳答案

正如您所说,无法通过插件添加名称,您可以使用 .each() 循环将名称添加到输入字段。这应该可以消除错误。例如下面:

var names = ['name1', 'name2', 'name3'];

$(document).ready(function() {
    $.each('#idOrClass input', function(i) {
        $(this).attr('name', names[i]);
    });
});

关于jquery - 使用 Jquery 验证器选择显示所选搜索文本框的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561492/

相关文章:

Jquery:图像 map 区域上的鼠标悬停事件

jquery - 当元素开始在窗口中显示时应用类

javascript - jQuery 返回 ID 以某个字符串开头的元素

javascript - 如何禁用 jquery 选择的页面加载事件中的选项?

javascript - 如何找到最接近查看器顶部的段落

javascript - 加载延迟的逐个字母动画

html - jquery 验证 select2.js 中的 errorPlacement

javascript - JQuery .validate 在第二次提交时首先触发

javascript - 选择带有 1000 个选项的标签 - 性能下降

jquery - 选择多选下拉列表加载问题