文本框不显示十进制值jQuery

时间:2013-08-22 12:31:55

标签: javascript jquery html

在我的jQuery程序中,我有3个文本框。一个用于net weight,一个用于rate,最后一个用于amount的只读文本框。金额文本框计算费率和净重文本框的乘积并显示结果。

function amtcal(id)
{    
    var ab="#a"+id;
    var ntwt=parseInt($(ab).val(),10);
    var a="#"+id;
    var rval=parseInt($(a).val(),10);
    var product=rval*ntwt;
    var abc="#aa"+id;
    $(abc).val(product);
}    

查看working example at jsFiddle

程序正在运行,但它导致的错误是它忽略了小数值。如果我输入以下内容: - Nt wt = 5.5 | Rate = 5.2,则输出为25

5 个答案:

答案 0 :(得分:3)

除非您想要的结果确实是整数,否则请勿使用parseInt将文本转换为数字。 parseFloatNumber将在此处完成工作。 ;)

答案 1 :(得分:2)

只需删除parseint,然后将其设为rval=$(a).val();

答案 2 :(得分:1)

你正在使用parseInt删除所有十进制值(使其成为int),而是使用parseFloat来保留它(从而使它成为一个浮点数)。

答案 3 :(得分:1)

使用此JS:

function amtcal(id)
{    
    var ab="#a"+id;
    var ntwt=parseFloat($(ab).val());
    var a="#"+id;
    var rval=parseFloat($(a).val());
    var product=rval*ntwt;
    var abc="#aa"+id;
    $(abc).val(parseFloat(product).toFixed(2));
} 

此处.toFixed()用于显示小数点后的2位数。

答案 4 :(得分:-1)

我已更新jQuery代码并在jsfiddle中更新。 这是更新的jQuery。

function amtcal(id){
    var ab="#a"+id;
    var ntwt=$(ab).val();
    var a="#"+id;
    var rval=$(a).val();
    var product=rval*ntwt;
    var abc="#aa"+id;
   $(abc).val(product);
}