我在使用jquery非侵入性验证时遇到了一个数字验证问题。我使用的版本是: ASP.MVC 3. JQuery 1.9.1 JQuery UI 1.10.1 JQuery Validation 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验证中的一个bug,还是我做错了什么?
谢谢,Nadav,我该怎么解决这个问题呢?
发布于 2013-03-12 00:34:41
将模型中的属性数据类型设置为整数。
请关注以下帖子:
Validation on int data type asp .net mvc3
[Integer(ErrorMessage="Are you stupid? Just fill in numbers only!")]
public int? TestValue { get; set; }发布于 2013-03-12 01:34:58
DataType(整数)在MVC3中是有效的。你可以做一个技巧。即使文本框type='text‘,并用javascript验证该框只接受数值。然后,您可以通过范围验证来验证控件。
https://stackoverflow.com/questions/15341564
复制相似问题