0

我的虚拟机中有一个十进制属性:

    [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 位小数

这样做的最佳方法是什么?我尝试应用 DisplayFormat 以及 TextBoxFor 上的格式,但这仍然通过了验证,这意味着我可以输入 3 个小数位。

4

3 回答 3

1

您可以使用一些客户端插件,允许您为允许的输入定义正则表达式。例如jQuery maskedInput插件。

于 2013-09-22T15:23:43.503 回答
0

这个怎么样:-

@{var formated = String.Format("{0:0.00}", EnteredPaymentAmount);}
@Html.TextBoxFor(m => m.EnteredPaymentAmount, formated, new { id = "id"})

编辑:-

EditorFor您也可以尝试使用

@Html.EditorFor(m => m.EnteredPaymentAmount)
于 2013-09-22T15:26:02.063 回答
0
$('input#EnteredPaymentAmount').blur(function () {
                var num = parseFloat($(this).val());
                var cleanNum = num.toFixed(2);
                $(this).val(cleanNum);
            });

我使用了上面的代码,它工作得很好。

于 2013-09-22T15:29:42.807 回答