繁体   English   中英

将验证添加到动态创建的复选框jQuery

[英]Add validation to dynamically created checkboxes jQuery

我正在处理收音机的动态表格,复选框是动态添加的。 不幸的是,我坚持添加验证。

如何将require属性添加到复选框?

以下代码

<ol type="a">
  <li><input type="radio" name="answer0[]">A</li>
  <li><input type="radio" name="answer0[]">A</li>
  <li><input type="radio" name="answer0[]">A</li>
</ol>
<ol type="a">
  <li><input type="checkbox" name="answer1[]">A</li>
  <li><input type="checkbox" name="answer1[]">A</li>
  <li><input type="checkbox" name="answer1[]">A</li>
</ol>
  1. 输入类型取决于单选或复选框的问题
  2. 可以有任意数量的问题answer1 [],answer2 [],answer3 []

第一种方法如下

$('ol').each(function (i) {
    $(this).find("input:first").prop("required", true);
});

由于输入元素具有相同的名称,所以无线电类型可以正常工作。 但是只需要首先输入才需要选中复选框。

第二

$('ol').each(function (i) {
    $("[name='answer"+i+"[]']").rules("add", {required:true});
});

但是它给出以下错误

无法读取未定义的属性“设置”

如何至少在复选框中添加验证到复选框...

好的,尝试以下解决方案:

var rules = {};

$('ol [type="checkbox"], ol [type="radio"]').each(function(i,el){
    var name = $(el).attr('name');
    if(rules[name] === undefined){
        rules[name] = {
            required: true
        };
    }
});

$("#myform").validate({
    rules: rules
});

你可以试试

$('ol').each(function (i) {
    $(this).find("input[type='checkbox']").prop("required", true);
});

尝试检查已选中复选框的长度

$('ol').find('input[type="checkbox"]:checked').length

我会将动态逻辑直接添加到“规则”中。 我最近解决了自己的问题,其中一个表单有两个默认的提交按钮。 由于功能处理了添加的规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM