【问题标题】:jQuery validation required rule not workingjQuery验证所需的规则不起作用
【发布时间】:2013-11-27 06:02:31
【问题描述】:

好的,我正在开发一个表单,根据我设置的验证规则测试特定表单元素。我正在尝试根据.valid() 是否返回truefalse 将布尔变量hasError 设置为truefalse。我遇到的问题是由于某种原因.valid() 返回false,即使我的规则设置为required: false,用户也没有在输入中输入数据。不应该将规则设置为required: false 允许验证通过,即使没有输入数据?

这是我正在使用的代码:

$.validator.addMethod("regex", function(value, element, regexp) {
            var check = false;
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
            },
            "Please do not use any special characters"
);

$('#formElem').validate({       
    rules: {
        testItem:{required: false, regex: /^[0-9A-Za-z\s`~!@$%^&*()+{}|;'",.<>\/?\\-]+$/}
            }

        });
var hasError = false;
if($('#testItem').valid()) {
    hasError = false;
}else{
    hasError = true;
}    

【问题讨论】:

  • 你能发布一个有效的 jsfiddle 吗?
  • 您应该显示足够的代码来复制报告的问题。

标签: jquery jquery-validate


【解决方案1】:

引用 OP:

“不应该将规则设置为required: false 允许验证通过,即使没有输入数据?”

是的,应该,是的,绝对可以:http://jsfiddle.net/J2p9N/

HTML

<form id="formElem">
    <input type="text" name="testItem" />
    <input type="submit" />
</form>

jQuery

$(document).ready(function () {

    $('#formElem').validate({
        rules: {
            testItem: {
                required: false
            }
        }
    });

});

引用 OP:

“我正在尝试根据 .valid() 是返回 true 还是 false 来将布尔变量 hasError 设置为 truefalse。”

您是否感到困惑,因为每当.valid() 返回true 时,您的代码将hasError 设置为false,反之亦然?

if($('#testItem').valid()) {
    hasError = false;
}else{
    hasError = true;
}    

否则,您的代码肯定有其他问题。您应该显示足够的代码来复制 jsFiddle 中报告的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多