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 验证不能正确验证数字?的主要内容,如果未能解决你的问题,请参考以下文章