2

我正在使用带有最新版本的 jquery inputmask,今天下载(v. 3.1.64-86)。

我有一个简单的“OvertimeFee”文本输入,并使用下面的代码在上面设置了掩码。

$('#OvertimeFee').inputmask('currency', {
    'autoUnmask': true,
    'removeMaskOnSubmit': true,
    'clearMaskOnLostFocus': true,
    'clearIncomplete': true,
    'prefix': '',
    'rightAlign': false,
    'showMaskOnHover': false
});

页面加载时不绑定初始值,用户提交表单时无需填写

我遇到的问题是,每当用户将该字段留空或输入一个值然后将其删除时,表单总是提交“0.00”而不是空值(“”)。如果用户没有填充它,我希望表单始终提交“”,但我不知道如何让 inputmask 做到这一点。即使将 autoUnmask 和 removeMaskOnSubmit 设置为 true,它仍然会提交“0.00”。

有谁知道如何解决这个问题?我没有运气搜索 github 问题。

谢谢。

FWIW,页面上包含和使用的脚本是:

<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.inputmask/inputmask.js"></script>
<script src="~/Scripts/jquery.inputmask/jquery.inputmask.js"></script>
<script src="~/Scripts/jquery.inputmask/inputmask.numeric.extensions.js"></script>
4

1 回答 1

1

在自己遇到这个问题后,我看到了两个可行的解决方案。

第一种是编写服务器端逻辑,拦截表单发送的“0.00”值,并将其转换为空字符串值。此解决方案保持数据完整性,但如果在大型站点上多次使用 jquery-inputmask,则可能需要长时间的编码。

第二种是恢复到较早的 jquery-inputmask 版本,例如 3.1.64。我选择了这个解决方案,因为我的站点不需要 3.1.64-86 中引入的任何更改。

于 2015-07-05T19:41:06.053 回答