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

时间:2013-03-11 14:49:53

标签: jquery asp.net-mvc jquery-validate unobtrusive-validation

我使用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 我该如何解决这个问题?

2 个答案:

答案 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验证该框仅接受数值。 然后你可以通过范围验证来验证控件。