jQuery验证动态输入

jQuery验证动态输入,jquery,forms,laravel,input,jquery-validate,Jquery,Forms,Laravel,Input,Jquery Validate,当这是一个动态数组时,如何验证所有选择输入?像这样: 我用的是laravel 4.2刀片 <tr><td> {{ Form::select('items[]', $items, null, array('class'=>'form-control items', 'required')) }} </td></tr> 然后我创建一个按钮来生成新的选择输入 $(document).on('click', '.add-item', functi

当这是一个动态数组时,如何验证所有选择输入?像这样:

我用的是laravel 4.2刀片

<tr><td> {{ Form::select('items[]', $items,  null, array('class'=>'form-control items', 'required')) }} </td></tr>
然后我创建一个按钮来生成新的选择输入

$(document).on('click', '.add-item', function (e) {
        var row = $(this).closest('tr').prev('tr').clone();
        row.find('input').val('');
        $(this).closest('tr').before(row);
        e.preventDefault();
    });
单击add按钮后,表单仅验证dom输入,而新添加的输入未验证

使用相同名称“items[]”创建的所有生成输入

如果我忘了在表单中输入任何items值,那么服务器端的items数组中就有空值

'items' => 
array (size=2)
  0 => string '42' (length=2)
  1 => string '' (length=0) // this empty value cause i forget to fill all inputs

在jquery.validate.js中,我们可以找到一个名为checkForm的函数,我们必须修改它,如下所示

checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
if (this.findByName( elements[i].name ).length != undefined && this.findByName( elements[i].name ).length > 1) {
for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
this.check( this.findByName( elements[i].name )[cnt] );
}
} else {
this.check( elements[i] );
}
}
return this.valid();
}
checkForm:function(){
这个.prepareForm();
对于(var i=0,elements=(this.currentElements=this.elements());elements[i];i++){
if(this.findByName(elements[i].name).length!=undefined&&this.findByName(elements[i].name).length>1){
对于(var cnt=0;cnt
这将验证与“items[]”同名的数组输入字段
我在此

上找到了此解决方案,请刷新$('.val表单').validate();添加inputI后,我已经尝试刷新$('.val表单').validate();在添加输入但没有解决问题后,您是否使用了验证插件?请用生成的HTML和使用的JS创建。我使用这个插件
checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
if (this.findByName( elements[i].name ).length != undefined && this.findByName( elements[i].name ).length > 1) {
for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
this.check( this.findByName( elements[i].name )[cnt] );
}
} else {
this.check( elements[i] );
}
}
return this.valid();
}