动态添加的行上的Jquery验证失败

时间:2013-06-26 06:59:32

标签: jquery jquery-validate

我正在使用jquery validation plugin,并且它不适用于动态添加的行 我的code是:

HTML

<form action="test.php" onsubmit="return false;">
    <div id="add_rows"> 
        <div class="new-row">
            <input type="text" required="required" name="qty[]" /><br />
            <textarea required="required" name="test[]" rows='4' cols='15'></textarea>
        </div>
    </div>
    <button>Add</button>
</form>

脚本:

var frm=$('form').validate({
    submitHandler: function(form) {
        // do other stuff for a valid form
        alert('form submitted');
        return false;
    }
});

$('button').on('click',function(){
    $clone=$('.new-row:first').clone();
    $clone.find('input,textarea').val('');      
    $clone.insertAfter($('.new-row:last'));
    $clone.find('input,textarea').rules('add',{required:true});
    $('.new-row:last').find('input,textarea').rules('add',{required:true});
});

Fiddle

另一个问题,我在我的系统上尝试了它,我得到的错误如下:TypeError: e is null 对于行$clone.find('input,textarea').rules('add',{required:true});,如果我删除然后错误不来, 但fiddle

中未显示此错误

1 个答案:

答案 0 :(得分:2)

试试这个,我想这就是你想要的

为textarea添加了唯一名称并输入。

var incr = 0;
$('button').on('click',function(){
    incr++;
    $clone=$('.new-row:first').clone();
    $clone.find('input,textarea').val('');
    $clone.find('input').attr('name','qty'+incr+'[]');
    $clone.find('textarea').attr('name','test'+incr+'[]');

Demo here