【发布时间】:2020-04-07 16:25:51
【问题描述】:
我喜欢下面的这个功能,它非常适合在您键入时格式化美元,但是,我无法找出光标重新定位的问题,因为它与使用退格键或突出显示和替换更多有关一次一个数字。例如,如果您运行被截断的代码,请尝试使用退格键将数字中的“32”替换为“89”或突出显示它并在上面输入。
有没有办法支持这个?也许用光标重新定位?
$(document).ready(function() {
$(this).on('click keyup paste', 'input.dollar:not([readonly])', function(e) {
if (e.which != 8) {
var par = $(this).parents('.listingbox');
// skip for arrow keys
if (e.which >= 37 && e.which <= 40) return;
// format number
$(this).val(function(index, value) {
var $ret = value.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return '$' + $ret;
});
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<input class="dollar" value="$342,323,123" />
【问题讨论】:
-
如果您从某个地方复制了该功能,最好给予表扬。
标签: javascript jquery