多维数组输入 - Jquery Validation插件

时间:2014-08-15 14:46:34

标签: jquery multidimensional-array jquery-validate

我在尝试弄清楚如何更改表单中某些字段所需的消息时遇到了一些麻烦。我创建了一个表单,用户可以随意添加或删除字段。

所以我有这样的事情:

div class="group">
            <h3>Sexe</h3>
            <label class="radio-label"><input type="radio" name="enfants[<?php echo $i; ?>][sexe]" value="Garçon" class="required" /><span class="text">Garçon</span></label>
            <label class="radio-label"><input type="radio" name="enfants[<?php echo $i; ?>][sexe]" value="Fille" class="required" /><span class="text">Fille</span></label>
        </div>

如您所见,我有一个通过php创建的动态数字(如果禁用了js)。如果启用,则用户添加字段并为其生成随机数。一切都在这一点上起作用。

这是验证代码:

form.validate({

        rules: {
            parent_telephone_maison: {
                require_from_group: [1, ".phone-group"]
            },
            parent_telephone_cell: {
                require_from_group: [1, ".phone-group"]
            },
            parent_telephone_travail: {
                require_from_group: [1, ".phone-group"]
            },
            autre_telephone_maison: {
                require_from_group: [1, ".autre-group"]
            },
            autre_telephone_cell: {
                require_from_group: [1, ".autre-group"]
            },
            autre_telephone_travail: {
                require_from_group: [1, ".autre-group"]
            }
        },
        errorPlacement:
          function(error, element) {

            var id = element[0]['id'];
            if (element.attr('type') === 'radio') {

                var group = $(element).closest('.group');
                var textarea = group.find('textarea').closest('[data-rel]');
                if (textarea.length >= 1) {
                    textarea.before("<label for='"+id+"' class='error'>You need to choose an option.</label>");
                } else {
                    group.append( "<label for='"+id+"' class='error'>You need to choose an option.</label>" );
                }


            }
        }
    });

您可以注意到,我尝试使用errorPlacement方法来实现我所需要的。它工作正常,但每次点击单选按钮时,错误都是重复的。

有没有办法用消息方法对此进行编码?说实话,我不太清楚如何写下来。

我希望这很清楚,如果需要,我可以提供更多信息。一如既往,感谢您的帮助。

0 个答案:

没有答案