【发布时间】:2011-09-24 22:19:05
【问题描述】:
我正在尝试像这样在文本字段中格式化数字:
123,456,789
我知道有很多 jQuery 插件可以做到这一点,但是,它们都改变了实际值。我只是希望它看起来已格式化,而不是格式化发送。
例如,如果我在文本字段中输入23845,我希望它在视觉上转换为23,845,但是当我发送表单时,我希望它以23845 发送。
有谁知道我如何做到这一点?我见过的所有其他解决方案都会更改实际提交的值。
【问题讨论】:
我正在尝试像这样在文本字段中格式化数字:
123,456,789
我知道有很多 jQuery 插件可以做到这一点,但是,它们都改变了实际值。我只是希望它看起来已格式化,而不是格式化发送。
例如,如果我在文本字段中输入23845,我希望它在视觉上转换为23,845,但是当我发送表单时,我希望它以23845 发送。
有谁知道我如何做到这一点?我见过的所有其他解决方案都会更改实际提交的值。
【问题讨论】:
请尝试以下方法:
<script type="text/javascript">
$(document).on('keyup', '.test', function() {
var x = $(this).val();
$(this).val(x.toString().replace(/,/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ","));
});
</script>
<form>
<input class="test" type="text" />
</form>
【讨论】:
AFAIK,掩码插件不会更改值,而只会更改显示:http://plugins.jquery.com/plugin-tags/mask
[edit] 在所有插件列表中,我在我的代码中使用了这个:https://github.com/RobinHerbots/jquery.inputmask ([edit 2] 并按你的意愿工作 我检查了代码我在哪里使用它,默认行为是它发送掩码 with 值,您需要使用一个选项来取消掩码,正如我在评论中所说)
【讨论】:
unmask 解决方案:github.com/RobinHerbots/jquery.inputmask/issues/8