使用 jQuery Validator 在 MVC 3 中未正确验证小数
Posted
技术标签:
【中文标题】使用 jQuery Validator 在 MVC 3 中未正确验证小数【英文标题】:Decimal is not validated correctly in MVC 3 with jQuery Validator 【发布时间】:2011-07-13 16:31:56 【问题描述】:我有一个像public decimal? MyProperty get; set;
这样的属性,它不是必需的并且可以为空,但如果我没有输入值> 0
,验证器会说如果我离开该字段,MyProperty 字段必须是一个数字empty 我收到同样的错误,如果我输入 0(零),我也会收到同样的错误。
Ex:
0 -> Error
1 -> Ok
0,00 -> Error
0,01 -> Ok
empty -> Error
我不明白为什么这不起作用,我使用 $.preferCulture("pt-BR");
但没有意义,因为值 0,01
被接受,而不是我不相信文化可能是问题.
PS:验证在客户端不起作用,服务器端正常工作。
【问题讨论】:
【参考方案1】:默认号码功能有错误。它测试 parseFloat(value) == 0
和 parseFloat for '0' 返回 0。
为了解决这个问题,我把它改写为
$.validator.methods.number = function (value, element)
return parseFloat(value).toString() !== "NaN";
我知道这不是最好的方法,但是这个解决方法解决了我的问题。
【讨论】:
我发现了这个,它很有帮助,但它可能还应该注意到 MVC 没有为你的代码包含验证器代码,你必须自己做。以上是关于使用 jQuery Validator 在 MVC 3 中未正确验证小数的主要内容,如果未能解决你的问题,请参考以下文章
关于spring MVC中加载多个validator的方法。
MVC中 jquery.validate取消忽略对hidden的验证
spring4 mvc 中使用 JSR-303 Validator ,国际化占位符问题至资源配置问题