jQuery使用自定义功能验证规则不起作用

时间:2018-07-21 12:06:10

标签: javascript jquery html5 jquery-validate

我有带有使用jquery创建的动态行的表。我尝试使用自定义定义的功能为每行添加必需的字段验证,但未按预期工作。

请在下面查看我的动态表格的屏幕截图

enter image description here

我的验证应通过以下方式进行:

  1. 如果仅存在一行,则显示两个字段均为必填项。

如果添加多于一行,则现在下面的验证将适用

  1. 如果我输入了项目值但未输入数量,那么它应该显示必填数量

  2. 如果我输入了数量但未输入项目字段,则应该显示项目字段为必填错误消息。

  3. 如果两个字段都为空,则忽略该行,无需对该行进行验证。

下面是我在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'],

                 },
上面的

无法正常工作。任何解决方案表示赞赏。

0 个答案:

没有答案