4

我在使用 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 验证中的错误还是我做错了什么?

谢谢, Nadav 我该如何解决这个问题?

4

2 回答 2

0

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

关注这些帖子:

验证 int 数据类型 asp .net mvc3

[Integer(ErrorMessage="Are you stupid? Just fill in numbers only!")]
public int? TestValue { get; set; }
于 2013-03-11T16:34:41.490 回答
0

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

于 2013-03-11T17:34:57.840 回答