django 键入时为数字添加逗号

n3schb8v  于 2022-11-18  发布在  Go
关注(0)|答案(4)|浏览(161)

当用户输入一个数字时,我试图添加逗号。在Jquery中选择带有属性number type的input form-control类的正确语法是什么?
编辑:我不能修改HTML代码,因为它是用Bootstrap从Django输出的。

HTML格式

<span class="input-group-addon">$</span>
<input class="form-control" id="id_step2-number_2"
       name="step2-number_2" type="number">
<span class="input-group-addon">.00</span>

使用JQuery

$(document).ready(function(){
    $("input[type='number']").keyup(function(event){
        // skip for arrow keys
        if(event.which >= 37 && event.which <= 40){
            event.preventDefault();
        }
        var $this = $(this);
        var num = $this.val().replace(/,/gi, "")
            .split("").reverse().join("");
          
        var num2 = RemoveRougeChar(
            num.replace(/(.{3})/g,"$1,").split("")
                .reverse().join("")
        );
          
        console.log(num2);

        // the following line has been simplified.
        // Revision history contains original.
        $this.val(num2);
    });
});
    
function RemoveRougeChar(convertString){
    if(convertString.substring(0,1) == ","){
        return convertString.substring(1, convertString.length)            
    }
    return convertString;
}

JSF中间链接https://jsfiddle.net/yWTLk/767/

s4chpxco

s4chpxco1#

首先,你不能使用input type=number,因为它不允许你用来表示数字组的字符,
第二,有了一个好的正则表达式,这其实超级容易,而且真的不需要反向和反向,这很无聊。

var num = $this.val().replace(/,/gi, "");
var num2 = num.split(/(?=(?:\d{3})+$)/).join(",");

第一行从输入值中删除逗号。
第二行很神奇,它将值从最后一行到第一行分成3组,然后用逗号连接。
我在这里使用split只是为了说明RegExp的强大功能,在实际操作中我们不需要拆分和连接,直接替换就行了:

var num2 = num.replace(/\d(?=(?:\d{3})+$)/g, '$&,');

fiddle
但是,真实的的魔力是,我打赌你会大喊,toLocaleString!什么?!

(1234567).toLocaleString() // "1,234,567"
9rnv2umw

9rnv2umw2#

使用输入类型“数字”似乎会阻止使用Javascript在输入字段中插入逗号。如果您想插入逗号,您可能需要使用“文本”输入,但这将阻止在禁用Javascript的浏览器上进行数字验证。
有趣的事情永远不会结束,这就是HTML5。

flvlnr44

flvlnr443#

type="number"更改为type="text",因为您不能将逗号放入数字中。

<input class="form-control" id="id_step2-number_2"
       name="step2-number_2" type="text">

检查更新的Fiddle

ax6ht2ek

ax6ht2ek4#

由于现在很多人都不使用jQuery,这里有一个简单的例子。你可能有不同的用例来添加逗号分隔的数字值。这里是一个完整的using commas as thousand separated using javascript指南。
第一个

相关问题