我的VM中有一个十进制属性:
[Required, Display(Name = "Manual Payment Amount")]
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal EnteredPaymentAmount { get; set; }
视图如下所示:
@Html.TextBoxFor(m => m.EnteredPaymentAmount, new { style = "width:200px", maxlength = Model.MaximumPaymentAmount.ToString("N").Length })
我想将输入限制为只有2位小数
这样做的最佳方式是什么?我试图在TextBox上应用DisplayFormat但格式,但仍然通过了验证,这意味着我可以输入3个小数位。
答案 0 :(得分:1)
您可以使用一些客户端插件,允许您为允许的输入定义正则表达式。例如jQuery maskedInput
插件。
答案 1 :(得分:0)
这个怎么样: -
@{var formated = String.Format("{0:0.00}", EnteredPaymentAmount);}
@Html.TextBoxFor(m => m.EnteredPaymentAmount, formated, new { id = "id"})
编辑: -
您也可以尝试使用EditorFor
@Html.EditorFor(m => m.EnteredPaymentAmount)
答案 2 :(得分:0)
$('input#EnteredPaymentAmount').blur(function () {
var num = parseFloat($(this).val());
var cleanNum = num.toFixed(2);
$(this).val(cleanNum);
});
我使用了上面的代码并且工作正常。