0

我有一个动态生成和递增它的 id 的表单部分。就像是:

<input type='text' name='fname1' id='fname1'/>
<input type='text' name='lname1' id='lname1'/>

我正在尝试第一次通过并验证表单(我以前从未使用过 jQuery 验证插件),我从表单 id “确认”开始

$('#confirm').validate({
     rules:{
          oneoftheinputnameshere:{
             required: true
             }
            }
 });

当我验证不更改的输入字段时,上述内容很好,但是当我不知道会生成多少次时,我将如何选择要验证的内容?我查看了有关此的其他一些问题,并为每个必需的输入字段添加了一个类,但我不确定这是否正确或如何实现它。

任何帮助都会很棒

编辑:ids 会加一,所以 'fname2'、'fname3' 等

4

2 回答 2

0

检查以下链接以获取动态验证示例

http://jquery.bassistance.de/validate/demo/dynamic-totals.html

示例:标记

<textarea style="display:none" id="template">
    <div class="row" >
        <input name="form{0}" id="form{0}" title="Please enter your username" required >    
    </div>
</textarea>

<form id="orderform"  method="get" action="foo.html">
    <div id="orderitems">   
    </div>
     <input class="submit" type="submit" value="Submit"/>
</form>
<button id="add">Add another input to the form</button>

脚本:

    <script type="text/javascript">
// only for demo purposes
    $.validator.setDefaults({
        submitHandler: function() {
            alert("submitted!");
        }
    });
    $().ready(function() {
        $("#orderform").validate({
            errorPlacement: function(error, element) {
                error.appendTo( element.parent(".row"));
            }
        });

        var template = jQuery.validator.format($.trim($("#template").val()));

        function addRow() {
            $(template(i++)).appendTo("#orderitems");
        }

        var i = 1;
        // start with one row
        addRow();
        // add more rows on click
        $("#add").click(addRow);
    })
     </script>
于 2013-06-12T07:21:58.980 回答
0

看起来您的帖子中缺少相当多的 HTML 代码,但您正在寻找的是 jQuery.each().children()取决于您想要如何处理它。

.each()将有利于基于另一个元素(如数组)动态生成(和存储名称)id,并且.children()有利于使用 jQuery 之类的东西迭代表的元素.contains()(是的,它们可以堆叠)。我知道这有点令人困惑,所以需要一些时间来阅读上面的 jQuery 方法。

于 2013-06-12T06:33:08.523 回答