如果这是一个动态数组,如何验证所有选择输入?像这样:
我使用了laravel 4.2 blade
<tr><td> {{ Form::select('items[]', $items, null, array('class'=>'form-control items', 'required')) }} </td></tr>
这是表单验证码
if ($('.val-form').length > 0) {
$('.val-form').validate();
}
然后我创建一个按钮来生成新的选择输入
$(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();
});
单击“添加”按钮后,表单仅验证dom输入和未验证的新添加输入
使用相同名称创建的所有生成输入&#34;项目[]&#34;
如果我忘记在表单中放置任何项值,我在服务器端使用空值
'items' =>
array (size=2)
0 => string '42' (length=2)
1 => string '' (length=0) // this empty value cause i forget to fill all inputs
答案 0 :(得分:-1)
在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();
}
这将验证具有相同名称的数组输入字段,例如“items []” 我在link
上找到了这个解决方案