【发布时间】:2015-02-03 09:02:29
【问题描述】:
我尝试在用户输入数字时添加逗号。在 Jquery 中选择属性为 number 类型的 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;
}
JSFiddle 链接 https://jsfiddle.net/yWTLk/767/
【问题讨论】:
-
你为什么不用自动数字插件?
-
看起来很有趣,但我不知道让 JQuery 指向我发布的文本输入的正确语法。
-
$this.val()比this.value效率高得多。 -
你可以使用这个小提琴作为基础:jsfiddle.net/GH05T/rd4xsvxd
标签: javascript jquery django twitter-bootstrap