Javascript price jquery中的小数点自动格式
我正在尝试转换类型输入字段上的小数位 数字从Javascript price jquery中的小数点自动格式,javascript,jquery,Javascript,Jquery,我正在尝试转换类型输入字段上的小数位 数字从0.00开始 因此,首先输入字段中的值为0.00 比我输入的1比它应该变成0.01 比i型2比它应该变成0.12 而不是0,所以它应该变成1.20,最后 当我键入0时,它应该变成12.00 0.01,0.12,1.20,12.00 我尝试了一些已经给出的方法,但没有成功 如果可能的话,请给我建议其他的方法。多谢各位 我试过这样做 $(文档).on('keyup','price',函数(e){ var值=$(this.val(); if(value.l
0.00开始
因此,首先输入字段中的值为0.00
比我输入的1
比它应该变成0.01
比i型2
比它应该变成0.12
而不是0
,所以它应该变成1.20
,最后
当我键入0
时,它应该变成12.00
0.01
,0.12
,1.20
,12.00
我尝试了一些已经给出的方法,但没有成功
如果可能的话,请给我建议其他的方法。多谢各位
我试过这样做
$(文档).on('keyup','price',函数(e){
var值=$(this.val();
if(value.length-1){
amountCommas=value.match(/,/gi).length;
}
if(value.indexOf('.')>-1){
amountDots=值。匹配(//gi)。长度;
}
如果((amountDots>=1和&amountCommas>=1)| | amountCommas>1 | | value.length==1){
$(this.val(value.substr(0,value.length-1));
返回false;
}
否则{
$(this.val(value.substr(0,value.length-1)+',');
}
}
$(this.val(value/100);//这是要插入的值
}否则{
$(this.val(value.substr(0,value.length-1))
返回false;
}
});代码>
以下逻辑适用于基本场景。您可能需要单独处理清除文本输入
$(文档).ready(函数(){
$(“#我的输入”)。关于('keyup',函数(e){
var v=字符串.fromCharCode(例如keyCode);
如果(!isNaN(v)){
var dv=$(“#我的显示器”).val();
$(“#我的显示器”).val(dv+''+v);
$(this.val($(“#我的显示器”).val()/100.toFixed(2));
}
});
});代码>
每次新击键时,假设它是一个数字,将其追加到末尾,乘以10并显示结果。好的,删除字符时使用的完全不同的解决方案:
$(document).on('keypress','.price',function(e){
var char = String.fromCharCode(e.which);
if(isNaN(char)) char = '';
var value = $(this).val() + char;
value = value.replace('.','');
$(this).val((value/100).toFixed(2));
if(!isNaN(char)) return false;
}).on('keyup','.price',function(e){
var value = $(this).val();
value = value.replace('.','');
$(this).val((value/100).toFixed(2));
});
我建议使用以下库之一:或。尝试键入1、0、0,然后将它们全部删除,然后重新键入1,您将看到它不是从0.01
开始的。我回答说,您可能需要单独处理清除文本输入的问题。我刚刚提到了逻辑问题。是的,我注意到了,这就是为什么我删除了我的评论,对不起:)这就像一个魅力!但是,当您删除字符时,它保留了rel
属性中的旧值。有什么解决方案吗?尝试键入1,0,0
,然后将它们全部删除,然后重新键入1
,您将看到它不是从0.01
@NiravJoshi开始的。请检查我的新解决方案,它在所有情况下都有效。非常感谢。:)