具有空值的 jquery inputmask 提交 0.00 而不是空字符串

标签 jquery jquery-inputmask

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

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

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

页面加载时没有绑定(bind)初始值,用户提交表单时无需填写字段

我遇到的问题是,每当用户将字段留空或输入值然后将其删除时,表单总是提交“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>

最佳答案

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

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

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

关于具有空值的 jquery inputmask 提交 0.00 而不是空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31121538/

相关文章:

php - Yii2自定义分页 View

javascript - Jquery input.mask 与正则表达式

javascript - 如何转义jquery inputmask中的反斜杠 "\"字符?

当屏蔽字段具有 "readonly"属性时,jQuery Inputmask 插件会阻止表单提交

jquery - 左右滑动表行/单元格

javascript - 使用 jquery 更改使用 Jquery 创建的元素的背景

javascript - 我们如何在动态插入的输入上设置掩码?

javascript - 范围 0-100 使用 jQuery inputmask 插件

javascript - 如何在超链接上展开特定的引导 Accordion 面板点击另一页?

javascript - 如何在 jQueryUI selectable 中捕获选择事件?