【问题标题】:view input to 2 decimal places查看输入到小数点后 2 位
【发布时间】:2013-09-22 15:19:30
【问题描述】:

我的虚拟机中有一个小数属性:

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

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我最终使用了以下内容:----- $('input#EnteredPaymentAmount').blur(function () { var num = parseFloat($(this).val()); var cleanNum = num.toFixed(2 ); $(this).val(cleanNum); });
    • 是的,这也是一种可能。
    【解决方案2】:
    $('input#EnteredPaymentAmount').blur(function () {
                    var num = parseFloat($(this).val());
                    var cleanNum = num.toFixed(2);
                    $(this).val(cleanNum);
                });
    

    我使用了上面的代码,效果很好。

    【讨论】:

      【解决方案3】:

      这个怎么样:-

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

      编辑:-

      您也可以尝试使用EditorFor

      @Html.EditorFor(m => m.EnteredPaymentAmount)
      

      【讨论】:

      • 你能用@Html.EditorFor(m => m.EnteredPaymentAmount) 代替TextFor 吗?
      • 也这样做了,但还是不行。
      猜你喜欢
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多