好的,我正在开发一个表单,根据我设置的验证规则测试特定的表单元素。我试图根据hasError
是返回true
还是false
将布尔变量.valid()
设置为true
或false
。我遇到的问题是由于某种原因,即使我的规则设置为.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;
}
答案 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中报告的问题。