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

时间:2011-01-20 17:41:31

标签: jquery jquery-validate

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

我正在使用bassistance jquery validation plugin,除了一个特定的部分,自定义方法之外,它运行良好。

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

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

我的问题是:

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

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

我的自定义方法应该检查“dependency-mismatch”的可选字段??

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

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

这是我的自定义方法:

$.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."
    );

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

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

2 个答案:

答案 0 :(得分:1)

我还通过电子邮件向图书馆的开发人员发送了回复:这解决了问题。

有没有理由使用required:false而不是required:true?如果不需要该字段,请省略所需规则,而不是将其设置为false。

您也可以尝试在自定义方法中省略对this.optional(元素)的调用。

此致 JORN

答案 1 :(得分:-1)

这有效:

return (this.optional(element) != false) || re.test(value);

Dependency mismatch with Jquery Validate plugin