jQuery使用多个选择框validation插件

我正在使用jQuery Validate来validation我的表单。 问题是我有一个带有多个选择框(动态编号)的表单,它有一个动态名称 – > answers[$question['id']]

我已经看到一些脚本,当你有一个固定的名称,你可以使用它来解决所有输入字段,如此。

 $('#form').validate({ rules: { "answers[]" = "required" } }); 

但在我的例子中,这是不可能的,任何想法? 谢谢!

首先,

它不是"answers[]" = "required"

这是"answers[]": "required"

注意冒号代替你的等号。

 $('#form').validate({ rules: { "answers[]": "required" } }); 

其次,这只会将required规则分配给name="answers[]"的单个字段。

如果您想轻松地将此规则分配给name="answers[1]"name="answers[2]"name="answers[3]"等多个字段,那么您需要做一个两件事……

1)内联声明required规则…

使用class

    

或与HTML5:

    

和jQuery:

 $('#form').validate(); // initialize the plugin 

DEMO#1 : http : //jsfiddle.net/7JHWf/


2)或者使用rules()方法动态地将rules()分配给nameanswers开头的所有字段:

 $('#form').validate(); // initialize the plugin // assign the rules $('input[name^="answers"]').each(function() { $(this).rules('add', { required: true }); }); 

DEMO#2 : http : //jsfiddle.net/7JHWf/1/

您可以通过抓取所有选择框或向其添加特定类来选择您感兴趣的选择框,然后使用each()循环:

 $('select') or $('select.specificClass').each(function() {} 

您不需要知道每个框的名称/ ID,以便能够选择并循环它。 您可以使用以下命令引用each()循环中的当前项值:

 $(this).val()