我使用jquery unobtrusive验证验证数字时出现问题。 我使用的版本是: 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">
执行验证,但问题是它是在值AS上执行的字符串, 即当我输入4时,我收到验证错误。
我查看了jquery.validation的代码,看起来它没有将任何值(元素值,min / max)转换为数字,因此range函数比较值是字符串。 我假设如果你在jquery中设置最小/最大范围,那么这些值将不是字符串,但是当你在数据属性中指定它们时它们是字符串而jquery似乎不处理这个。
这是jquery验证中的错误还是我做错了什么?
谢谢, Nadav 我该如何解决这个问题?
答案 0 :(得分:0)
使模型中的属性数据类型为整数。
关注这些帖子:
Validation on int data type asp .net mvc3
[Integer(ErrorMessage="Are you stupid? Just fill in numbers only!")]
public int? TestValue { get; set; }
答案 1 :(得分:0)
[DataType(Integer)]在MVC 3中有效。 你可以做一个技巧。即 使文本框类型='文本'并使用javascript验证该框仅接受数值。 然后你可以通过范围验证来验证控件。