具有动态输入名称的唯一jquery验证

时间:2015-07-14 11:33:41

标签: jquery jquery-validate

我使用了以下jquery代码

jQuery.validator.addMethod("unique", function(value, element, params) {
    var prefix = params;
    var selector = jQuery.validator.format("[name!='{0}'][name^='{1}'][unique='{1}']", element.name, prefix);
    var matches = new Array();
    $(selector).each(function(index, item) {
        if (value == $(item).val()) {
            matches.push(item);
        }
    });

    return matches.length == 0;
}, "Value is not unique.");

jQuery.validator.classRuleSettings.unique = {
    unique: true
};
$("#myform").validate();

$("#validate").click(function() {
    $("#myform").valid();
});

但是由于相同的输入名称无法正常工作,请点击此处https://jsfiddle.net/bgzBY/147/

但如果我使用的名称不同,请查看http://jsfiddle.net/mysteryh/bgzBY/

那么如何解决呢?

2 个答案:

答案 0 :(得分:1)

无法在多个输入字段上使用相同的name。这个插件的要求没有解决方法。 (这是插件跟踪输入元素的方式。)

  

那么如何解决呢?

必须在每个输入上使用唯一的namecurrency[1]currency[2]

答案 1 :(得分:-1)

这与你的名字无关。您的脚本未正确加载。阻止加载混合活动内容“http://ajax.microsoft.com/ajax/jquery.validate/1.8/jquery.validate.min.js”这是控制台中显示的错误。