如何将验证规则动态添加到复选框数组?

How to add validation rule dynamically to checkbox array?

我正在将输入字段动态附加到 div。我想检查是否至少检查了一个 checkbox,为此我使用 class 将 JQuery 验证规则动态添加到输入数组 checkbox。 HTML:

<input type="checkbox" name="ans[]" value="opt_' + x + '" class="answer_check">

JavaScript:

 $(".answer_check").rules("add", {required: true, messages: {required: "Please select correct answer/s."}});

我在控制台中收到以下错误。

语法错误,无法识别的表达式:label[for='ans[]'], label[for='ans[]'] *, #ans[]-error

如果 $(".answer_check") 表示多个元素,则不能简单地将其附加到 .rules() 方法。开发人员将这些方法设计为仅适用于选择器的第一个匹配元素

要附加到多个元素,您需要将其包裹在 jQuery .each() 中。

$(".answer_check").each(function() {
    $(this).rules("add", {
        required: true, 
        messages: {
            required: "Please select correct answer/s."
        }
    });
});

此外,虽然您可以在 复选框或单选元素中共享相同的 name,但每个分组 必须 有一个 unique name 否则这个插件将无法正常工作。

示例:

Question 1:
<input type="radio" name="foo" value="yes" />yes
<input type="radio" name="foo" value="no" />no
<input type="radio" name="foo" value="maybe" />maybe

Question 2:
<input type="radio" name="bar" value="yes" />yes
<input type="radio" name="bar" value="no" />no
<input type="radio" name="bar" value="maybe" />maybe