查看输入到2位小数

时间:2013-09-22 15:19:30

标签: asp.net-mvc

我的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个小数位。

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);
            });

我使用了上面的代码并且工作正常。