jQuery验证要求规则不起作用

时间:2013-11-26 20:10:56

标签: jquery jquery-validate

好的,我正在开发一个表单,根据我设置的验证规则测试特定的表单元素。我试图根据hasError是返回true还是false将布尔变量.valid()设置为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;
}    

1 个答案:

答案 0 :(得分:2)

引用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:

  

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

您是否感到困惑,因为只要false返回hasError,您的代码就会false设置为.valid(),反之亦然?

true

否则,您的代码必须出现其他问题。您应该显示足够的代码来复制jsFiddle中报告的问题。