Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript price jquery中的小数点自动格式_Javascript_Jquery - Fatal编程技术网

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开始的。请检查我的新解决方案,它在所有情况下都有效。非常感谢。:)