jQuery验证插件和动态输入

时间:2013-06-12 05:36:20

标签: jquery jquery-validate

我有一段表单可动态生成并递增它的ID。 类似的东西:

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

我正在尝试第一次验证表单(之前我从未使用过jQuery验证插件)并且我以表单id“confirm”开始它

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

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

任何帮助都会很棒

编辑:ids会增加1,所以'fname2','fname3'等等

2 个答案:

答案 0 :(得分:0)

您的帖子中似乎缺少相当数量的HTML代码,但您要查找的是jQuery .each().children(),具体取决于您希望如何处理它。

.each()可以基于另一个元素(如数组)动态生成(并存储ids的名称),.children()可以用于迭代表格的元素jQuery .contains()(是的,他们可以堆叠)。我知道这有点令人困惑,所以花点时间阅读上面的jQuery方法。

答案 1 :(得分: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>