ASP.NET MVC4不显眼的验证消息对于数字规则不正确

时间:2014-09-18 08:29:17

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

我在ASP.NET MVC4中使用jQuery unobtrusive验证来验证输入只包含数字:

HTML

<input class="form-control" 
       data-val="true" 
       data-val-digits="This field may only contain digits." 
       data-val-range="This field must be between 0 and 25." 
       data-val-range-max="25" 
       data-val-range-min="0" 
       data-val-required="This field is required." 
       id="DaysHoliday" 
       name="DaysHoliday" 
       type="number" 
       value="">

当我在输入中输入“3.5”时,我正确地得到验证消息“此字段可能只包含数字。”

当我在输入中输入“foo”时,我希望看到数字验证消息,但实际上我得到了所需的验证消息“此字段是必需的。”

为什么显示错误信息?

1 个答案:

答案 0 :(得分:1)

这是一个适用于Safari,Firefox和Chrome的演示版,但不适用于资源管理器10:http://jsfiddle.net/e0uz8nrs/

您的问题似乎是特定于浏览器的,并且是由该字段的type="number"指定引起的。它根本无法将文本字符识别为任何内容,因此您将获得与空字段相同的消息。

您可以将字段更改为type="text",它的行为会更像您期望的那样。我不相信还有其他解决办法。