jQuery使用点验证使用名称的组选项问题

时间:2015-01-29 16:05:39

标签: javascript jquery jquery-validate

我使用jquery validate插件,我需要为一组输入分组消息,但是它们的名称值包含一个点,这似乎是一个问题。有没有办法克服这个问题?

    groups: {
        validDateOfBirth: 'firstname.fieldOne firstname.fieldTwo',

    },

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

正确,在groups选项中,如果名称包含特殊字符,则不能使用名称。在rules选项中,您可以使用引号as per the documentation包围名称。但不幸的是,这个技巧对groups选项不起作用。

但是,有一种解决方法。您将在.validate()方法之外构造参数并将其分配给变量。然后将变量本身插入.validate()

对于您的情况,我使用jQuery“starts with”选择器来获取以input开头的所有firstname元素。如果您愿意,可以使用其他内容,例如class,只要您只选择此特定分组的所有元素。

var names = "";                                 // create empty string
$('input[name^="firstname"]').each(function() { // grab each input starting w/ 'firstname'
    names += $(this).attr('name') + " ";        // append each name + single space to string
});
names = $.trim(names);                          // remove the empty space from the end

$('#myform').validate({
    // other options,
    groups: {
        validDateOfBirth: names  // reference the string
    }
});

工作演示:http://jsfiddle.net/wpzk47t8/

来源:https://stackoverflow.com/a/28029469/594235

答案 1 :(得分:-1)

我建议您使用与dot不同的字段名称,因为您可能遇到问题,请参阅What characters are allowed in the HTML Name attribute inside input tag?