jQuery验证动态创建的数组输入元素

我有一个要使用jQuery Validation插件进行验证的表单。我目前在使用array(name="inputname[]")输入元素时遇到问题,该元素是用jQuery动态创建的.on()。让我解释一下这个问题:


有一种形式,存在一个名为的输入文本name[]。

有一个按钮可添加更多输入文本,该元素使用.on()执行。我单击了2或3次,因此会有多于1个输入文本。

我单击提交,该窗体是正确验证,但它仅验证第一个创建的数组元素,而不验证另一个元素。

对于完整的代码,我在这里创建了一个jsfiddle:http : //jsfiddle.net/ThE5K/4/


jQuery的:


$(document).ready(function () {


    // MODE 1

    //   With [] or array name <<<< this one is not working

    $("#addInput").on('click', function () {

        $('#inputs').append($('<input class="comment" name="name[]" />'));

    });



    /* MODE 2

       Without [] or array name <<<< this one is working

       var numberIncr = 1;


        $("#addInput").on('click', function () {

           $('#inputs').append($('<input class="comment" name="name' + numberIncr + '" />'));

           numberIncr++;

       });

    */


    $('form.commentForm').on('submit', function (event) {


        $('input.comment').each(function () {

            $(this).rules("add", {

                required: true

            })

        });


        event.preventDefault();


        console.log($('form.commentForm').valid());

    })


    $('form.commentForm').validate();

});

HTML:


<form class="commentForm">

    <div id="inputs"></div>

    <input type="submit" /> 

    <span id="addInput">add element</span>

</form>

我在其中创建了两种模式,一种工作模式(不带数组名的动态输入文本)和一种不工作模式(带数组名的动态输入文本)。


我一直在通过那些解决方案,但不幸的是,其中没有一个起作用:


jQuery验证为数组输入添加规则

jQuery Validate不适用于动态内容

jQuery验证动态输入数组

请帮忙。


喵喵时光机
浏览 479回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery