【问题标题】:Jquery validation does not validate numbers properly?Jquery 验证不能正确验证数字?
【发布时间】:2013-02-26 19:19:44
【问题描述】:

我在使用 jquery 不显眼的验证来验证数字时遇到了问题。 我正在使用的版本是: 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">

进行了验证,但问题是它是对值作为字符串执行的, 即当我输入 4 时,我得到一个验证错误。

我查看了 jquery.validation 的代码,看起来它没有将任何值(元素值,最小值/最大值)转换为数字,因此 range 函数将值比较为字符串。 我假设如果您在 jquery 中设置最小/最大范围,那么这些值将不是字符串,但是当您在数据属性中指定它们时,它们是字符串,而 jquery 似乎无法处理此问题。

这是 jquery 验证中的一个错误还是我做错了什么?

谢谢, 纳达夫 我该如何解决这个问题?

【问题讨论】:

  • 谢谢,只是在我在 JQuery 中打开一个错误之前,我想确保我没有犯愚蠢的错误......
  • 我很欣赏这一点,但这并不是 SO 的真正用途。请将您的问题标记为关闭或删除。谢谢。
  • 您为此创建的错误是什么?我遇到了同样的问题。
  • 同样的问题。我以为这是我的代码。我去 Stackoverflow 解决这类问题。在堆栈上找到这些东西比在人们的随机项目 repo 上要容易得多。显然,如果有人在问题页面上找到链接,那将是公认的答案

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


【解决方案1】:

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

关注这些帖子:

Validation on int data type asp .net mvc3

[Integer(ErrorMessage="Are you stupid? Just fill in numbers only!")]
public int? TestValue { get; set; }

【讨论】:

  • 我在 ASP.MVC3 中没有整数数据注释。你在哪里得到它?无论如何,问题是 JQuery 验证代码中的一个错误,所以我怀疑它会有所帮助......无论如何,感谢您的建议..
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2014-01-08
    相关资源
    最近更新 更多