使用Jquery在文本框上添加逗号

时间:2017-07-06 07:46:04

标签: javascript jquery input

我正在尝试在只应接受数字的文本框上添加逗号。我所做的不是使用type =“numbers”,而是将文本框限制为仅接受数字keyCodes。

    $('#salary').keydown(function (e) {
        var keyCode = e.which; 
        if (keyCode != 8 && keyCode != 9 && keyCode != 13 && keyCode != 37 && keyCode != 38 && keyCode != 39 && keyCode != 40 && keyCode != 46 && keyCode != 110 && keyCode != 190) {
            if (keyCode < 48) {
                e.preventDefault();
            } else if (keyCode > 57 && keyCode < 96) {
                e.preventDefault();
            } else if (keyCode > 105) {
                e.preventDefault();
            }
        }
    });

我想要的是在编辑输入(失焦)后,文本框会自动显示类似于此值的逗号:

1,000,000.00

我对在文本框中添加逗号的操作或使用方法毫无头绪。

4 个答案:

答案 0 :(得分:2)

$( "#salary" ).blur(function() {
   $( "#salary" ).val( parseFloat($( "#salary" ).val(), 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString());
});

答案 1 :(得分:0)

尝试使用此解决方案在数字中添加逗号

    $('#salary').keydown(function (){
         var x = $('#salary').val();
         $('#salary').val(addCommas(x));

         function addCommas(x) {
           var parts = x.toString().split(".");
           parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
           return parts.join(".");
        }
});

答案 2 :(得分:0)

请你试试下面的脚本。点击文本框后将删除逗号,焦点输出后将添加千位分隔符

&#13;
&#13;
config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews"
&#13;
&#13;
&#13;

答案 3 :(得分:0)

仅适用于零和整数

$("#amount").keypress(function (e) {
var verified = (e.which == 8 || e.which == undefined || e.which == 0) ? null : String.fromCharCode(e.which).match(/[^\-/0-9]/);
if (verified) {
e.preventDefault();
}
});

仅适用于整数

$("#amount").keypress(function (e) {
var verified = (e.which == 8 || e.which == undefined || e.which == 0) ? null : String.fromCharCode(e.which).match(/[^0-9]/);
if (verified) {
e.preventDefault();
}
});

焦点在

时不显示逗号
$("#amount").focus(function () {
var str = $(this).val();
$(this).val(str.replace(/,/g,''));
});

以焦点显示时显示逗号

$("#amount").focusout(function () {
if ($(this).val().search(",") > 0){
return false;
} else {
if ($(this).val()) {
var add_comma = new Intl.NumberFormat().format($(this).val());
$(this).val(add_comma);}}
});