Jquery Mask 插件删除小数点零

Jquery Mask Plugin removes decimal zeros

我在我的 MVC .Net 项目中使用 jQuery Mask Plugin。在 bootstrap 模式中,显示了一个包含货币类型字段的表单。

@Html.TextBoxFor(model => model.Amount, new { @class = "form-control", data_mask = "#,##0.00", data_mask_reverse = "true" })

该模式用于插入或编辑记录。

当我打开要插入的模式时,蒙版效果很好。

当我打开模式进行编辑时,应该将货币字段中的数据加载到该字段中,但掩码并未应用于该字段。为了解决这个问题,我在打开模式时做了以下操作。

$("#Amount").trigger("input");

而且效果很好。

我遇到的问题是,如果在字段中注册数量 12,345.00 时。当我打开模式进行编辑时,小数点的零被删除,在字段中显示金额 123.45.

但是,如果我注册 1,234.56,当我打开模式进行编辑时,字段中会正确显示相同的值 1,234.56

我该怎么做才能让小数点为零时,掩码继续保留它们?

我继续检查我的问题,发现问题不是面具造成的。显然,问题出自 $.parseJSON,即在将具有零的值转换为小数时,类型数字的字段将其保留为 0。

How to prevent removing decimal point when parsing JSON?

所以我的快速修复(我不知道它是最好的还是正确的)是在为字段赋值时执行以下操作。

$("#Amount").val(amountNum.toFixed(2));