3

我正在使用jQuery Validation 插件,并且我有一个带有该类的文本框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>
4

3 回答 3

7

文档中检查这一点:

使“字段”为必填项且仅数字。

你可以这样做:

var isValid = jQuery('#kiloMetresTravelled').valid() || jQuery('#kiloMetresTravelled').val() == "";
于 2009-01-27T03:32:44.183 回答
2

我认为这有效:

var e="#whatever";
var isValid = $(e).valid() || $(e).val()== "" && !$(e).hasClass('required');
于 2009-10-02T10:45:20.177 回答
0

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

完整的解释在这里:

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

于 2013-10-02T11:36:45.800 回答