当需要不为真时,jQuery Validation`valid()`方法返回0

时间:2009-01-27 03:15:24

标签: javascript jquery validation jquery-validate

我正在使用jQuery Validation plugin,我有一个类digits的文本框,强制它只是数字,但不是必需的。当我在表单上调用validate时它工作正常,但是如果我在文本框上调用valid()时为空,则返回0,尽管没有显示错误消息并且不需要设置。

有谁知道为什么它会为看似有效的输入值返回这个?

以下是代码:

<input type="text" value="" name="kiloMetresTravelled" id="kiloMetresTravelled" class="digits"/>

和脚本

<script type="text/javascript'>
 var isvalid = jQuery('#kiloMetresTravelled').valid(); 
 //isvalid == 0 when kiloMetresTravelled is blank
</script>

3 个答案:

答案 0 :(得分:7)

documentation

中查看此内容
  

需要“字段”和数字   仅

你可以这样做:

var isValid = jQuery('#kiloMetresTravelled').valid() || jQuery('#kiloMetresTravelled').val() == "";

答案 1 :(得分:2)

我认为这有效:

var e="#whatever";
var isValid = $(e).valid() || $(e).val()== "" && !$(e).hasClass('required');

答案 2 :(得分:0)

当规则方法使用“this.optional(element)”检查可选字段时,库中存在错误。当该字段为空时,this.optional返回“dependency-mismatch”,验证方法返回“undefined”,将该字段标记为无效。

这里有完整的解释:

https://github.com/jzaefferer/jquery-validation/issues/481