bassistance jquery验证插件 - 依赖性不匹配

jim*_*ode 6 jquery jquery-validate

我搜索了堆栈溢出,无法找到我的问题的答案.

我正在使用bassistance jquery验证插件,它除了一个特定的部分,自定义方法以外都运行良好.

方法正在工作只是调用$('selector').valid()告诉我元素是无效的,即使它应该是有效的.

这是由于this.optional(元素)返回"dependency-mismatch".

我的问题是:

在检查元素上的可选项时,依赖项不匹配意味着什么?

依赖是否意味着它是可选的,但有其他依赖性?

那么我的自定义方法应该检查"dependency-mismatch"的可选字段?

我不清楚回归的原因是什么.

我的自定义方法是否也会返回依赖项不匹配?或者我应该处理它?

这是我的自定义方法:

$.validator.addMethod(
        "ukphonenumber",
        function (value, element, validate) {

            if (validate) {
                var regexp = "\\s*\\(?((\\+0?44)?\\)?[ \\-]?(\\(0\\))|0)((20[7,8]{1}\\)?[ \-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{4})|([1-8]{1}[0-9]{3}\\)?[ \\-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{3}))\\s*";
                var re = new RegExp(regexp);
                return this.optional(element) || re.test(value);
            }
            else {
                return true;
            }
        },
        "Please check your input."
    );
Run Code Online (Sandbox Code Playgroud)

这将规则添加到我的输入中:

$("#<%=txtTelephoneNumber.ID %>").rules("add", {
            required: false,
            ukphonenumber: true,
            messages: {
                required: "Please enter your telephone number",
                ukphonenumber: "Your telephone number is invalid"
            }
        });
Run Code Online (Sandbox Code Playgroud)

jim*_*ode 1

我还给库的开发人员发了电子邮件并得到了这样的回复:这解决了问题。

\n\n

有什么理由使用 required:false 而不是 required:true 吗?如果该字段不是必填字段,请忽略必填规则,而不是将其设置为 false。

\n\n

您还可以尝试在自定义方法中省略对 this.Optional(element) 的调用。

\n\n

问候\nJ\xc3\xb6rn

\n