如何定制屏蔽输入jQuery插件
我正在使用来自的jQuery掩码插件 我想自定义我的插件,并已尽我最大的努力去做,但我不能 我想要的是如何定制屏蔽输入jQuery插件,jquery,mask,masking,maskedinput,Jquery,Mask,Masking,Maskedinput,我正在使用来自的jQuery掩码插件 我想自定义我的插件,并已尽我最大的努力去做,但我不能 我想要的是 我只能输入数字 每第三个数字后,所有数字将自动格式化(,) (.)后面只有两位数 我正在使用这个面具: $("#product").mask("999,999,999.99",{placeholder:" "}); 问题是如果我只需要输入150.50,我需要将光标放在准确的位置并输入 例如,在上面的掩码中,如果我键入150.50,文本框如下所示: []、[]、150.50其中[]是一个空格
$("#product").mask("999,999,999.99",{placeholder:" "});
问题是如果我只需要输入150.50,我需要将光标放在准确的位置并输入
例如,在上面的掩码中,如果我键入150.50,文本框如下所示:
[]、[]、150.50
其中[]是一个空格。我想要的只是
显示150.50,无额外(,)s.如果我键入1150.50,则显示1150.50,但我希望在键入后自动进行格式化,并且不希望显示任何额外的(,)s.您不需要屏蔽插件,而是格式化插件
看看你不想要屏蔽插件,而是格式化插件
看看加比的答案是正确的,提供的选项比我的多得多。然而,我为您的具体需求制定了一个解决方案。查看它
$('input').bind('keyup blur',function(){
变量i,j,final='',input=$(此),
raw=input.val().replace(/[^\d]/g',);
while(raw.substr(0,1)=='0'&&raw.length>2){//对于大的数字,删除前导0
原始=原始子序列(1);
}
而(raw.length<2){//对于小数字,最多可使用两个0填充
原始='0'+原始;
}
对于(i=1;iGaby的答案是正确的,并且提供了比我多得多的选项。但是,我为您的特定需求制定了一个解决方案。查看它
$('input').bind('keyup blur',function(){
变量i,j,final='',input=$(此),
raw=input.val().replace(/[^\d]/g',);
while(raw.substr(0,1)=='0'&&raw.length>2){//对于大的数字,删除前导0
原始=原始子序列(1);
}
而(raw.length<2){//对于小数字,最多可使用两个0填充
原始='0'+原始;
}
对于(i=1;i如果用户输入“5”,你希望它显示“.05”吗?@adam谢谢如果用户输入5,它应该是5.00,那么如果用户输入“5”、“0”和“3”,它如何实现“5.03”(根据需要)?这不会错误地产生“500.03”吗?如果用户输入“5”,你希望它显示“.05”?@adam谢谢如果用户输入5,它应该是5.00,那么如果用户输入“5”、“0”和“3”,它是如何实现“5.03”(根据需要)的?这不会产生错误的“500.03”吗?谢谢adam这是很好的解决方案谢谢adam这是很好的解决方案
$('input').bind('keyup blur', function(){
var i, j, final = '', input = $(this),
raw = input.val().replace(/[^\d]/g, '');
while (raw.substr(0, 1) === '0' && raw.length > 2) { //remove leading 0s for large numbers
raw = raw.substr(1);
}
while (raw.length < 2) { //pad with up to two 0s for small numbers
raw = '0' + raw;
}
for (i = 1; i <= raw.length; i++) { //format the number as ##,###,###.##
j = raw.length - i;
final =
(i === 2 ? '.' : ((i + 1) % 3) === 0 && i != raw.length ? ',' : '')
+ raw.substr(j, 1)
+ final;
}
input.val(final);
});