我有带有使用jquery创建的动态行的表。我尝试使用自定义定义的功能为每行添加必需的字段验证,但未按预期工作。
请在下面查看我的动态表格的屏幕截图
我的验证应通过以下方式进行:
如果添加多于一行,则现在下面的验证将适用
如果我输入了项目值但未输入数量,那么它应该显示必填数量
如果我输入了数量但未输入项目字段,则应该显示项目字段为必填错误消息。
如果两个字段都为空,则忽略该行,无需对该行进行验证。
下面是我在jquery中开发的函数:
$.validator.addMethod("sohil_test", function(value, element, options) {
var selectors = options[1];
var form = $(".compo_item_table").closest('form');
var flag = true;
var totalrows = form.find('tr.mainrow').length;
$(form.find('tr.mainrow')).each(function () {
var $row = $(this);
var $elements = $row.find(selectors);
var hasEmpty = $elements.filter(function (index) {
return $(this).val();
});
if (hasEmpty.length)
{
$($row.find(selectors)).each(function () {
var missing = $(this).val() === "";
if(missing)
{
flag = false;
}
});
}else {
$row.find(selectors).removeClass('error');
console.log("ignore");
}
});
return flag;
}, $.validator.format("This field is reuired."));
如果上面的函数在表单提交时调用,就像普通函数一样,我们使用jquery调用它就可以了,但是如果我使用jquery调用相同的函数,则验证规则如下:
"inventory_item[]": {
sohil_test: [1, '.common_class']
},
"item_quantity[]": {
sohil_test: [1, '.common_class'],
},
上面的无法正常工作。任何解决方案表示赞赏。