提问人:middelpat 提问时间:4/22/2013 更新时间:4/25/2013 访问量:775
客户端十进制验证无法正常工作
client side decimal validation isn't working as it should
问:
我有一个 MVC4 应用程序,具有不显眼的 javascript 客户端验证。除了十进制验证外,这工作正常。我正在鼓励一些奇怪和烦人的行为。
十进制验证只允许小数点分隔符后有三个数字的数字。但是,我希望它适用于分隔符之后的两个数字(或者任何数字都可以,如果我是正确的,默认情况下应该这样做)。
所以 1.222 是有效的,而 1.22 不是,而我不想它是有效的。(1.2222 无效)。
在我看来,我有一个正常的:
@Html.TextBoxFor(x => x.BasePrice)
我的模型:
[Required]
public decimal BasePrice { get; set; }
和我的控制器:
ProductVM model = new ProductVM()
{
BasePrice = product.BasePrice
};
- product 是 Entity Framework 4 entityobject
我也试过推杆;
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
在我的模型中。但这也行不通。它没有效果。
在使用 MVC 时,我从未见过这样的行为。我不知道该去哪里看。有什么线索吗?
答:
1赞
middelpat
4/25/2013
#1
我仍然不知道问题是什么,但我用一点肮脏的解决方法解决了它:
$.validator.methods.number = function (value, element) {
if(!isNaN(parseFloat(strValue)))
{
return true;
}
return false;
}
通过覆盖客户端十进制验证。刚刚在我的 _layout.cshtml 的脚本块中添加了它。
服务器端验证将通过完整验证来确保安全性仍然正常。
评论