Jquery 验证不能正确验证数字?

Posted

技术标签:

【中文标题】Jquery 验证不能正确验证数字?【英文标题】:Jquery validation does not validate numbers properly? 【发布时间】:2013-02-26 19:19:44 【问题描述】:

我在使用 jquery 不显眼的验证来验证数字时遇到了问题。 我正在使用的版本是: ASP.MVC 3. jQuery 1.9.1 jQuery UI 1.10.1 jQuery 验证 1.11.0

我要验证的输入是:

<input type="number" value="0" name="Data.time_between_loops.Planned.hour" id="Data_time_between_loops_Planned_hour" data-val-required="The hour field is required." data-val-range-min="0" data-val-range-max="23" data-val-range="The field hour must be between 0 and 23." data-val-number="The field hour must be a number." data-val="true" class="hour valid">

进行了验证,但问题是它是对值作为字符串执行的, 即当我输入 4 时,我得到一个验证错误。

我查看了 jquery.validation 的代码,看起来它没有将任何值(元素值,最小值/最大值)转换为数字,因此 range 函数将值比较为字符串。 我假设如果您在 jquery 中设置最小/最大范围,那么这些值将不是字符串,但是当您在数据属性中指定它们时,它们是字符串,而 jquery 似乎无法处理此问题。

这是 jquery 验证中的一个错误还是我做错了什么?

谢谢, 纳达夫 我该如何解决这个问题?

【问题讨论】:

是的。 You should refer to this Github page for bugs。 SO 仅适用于您的 编码问题。 github.com/jzaefferer/jquery-validation/issues?state=open 谢谢,只是在我在 JQuery 中打开一个错误之前,我想确保我没有犯愚蠢的错误...... 我很欣赏这一点,但这并不是 SO 的真正用途。请将您的问题标记为关闭或删除。谢谢。 您为此创建的错误是什么?我遇到了同样的问题。 同样的问题。我以为这是我的代码。我去 *** 解决这类问题。在堆栈上找到这些东西比在人们的随机项目 repo 上要容易得多。显然,如果有人在问题页面上找到链接,那将是公认的答案 【参考方案1】:

在模型中将属性数据类型设为整数。

关注这些帖子:

Validation on int data type asp .net mvc3

[Integer(ErrorMessage="Are you stupid? Just fill in numbers only!")]
public int? TestValue  get; set; 

【讨论】:

我在 ASP.MVC3 中没有整数数据注释。你在哪里得到它?无论如何,问题是 JQuery 验证代码中的一个错误,所以我怀疑它会有所帮助......无论如何,感谢您的建议..【参考方案2】:

[DataType(Integer)] 在 MVC 3 中有效。 你可以做一个把戏。 IE。 使文本框 type='text' 并使用 javascript 验证该框仅接受数值。 然后您可以通过范围验证来验证控件。

【讨论】:

以上是关于Jquery 验证不能正确验证数字?的主要内容,如果未能解决你的问题,请参考以下文章

js验证表单不能填数字怎么判断?

为啥使用jquery validate进行表单验证时不能显示提示信息????

jquery表单验证 自定义函数使用

每次输入验证码都不正确是为啥

为啥输入验证码总是错误啊

求一个验证数字的正则表达式,只能数字通过验证,其他所有字符,包括空格都不能通过验证