在我的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
。
答案 0 :(得分:3)
除非您想要的结果确实是整数,否则请勿使用parseInt
将文本转换为数字。 parseFloat
或Number
将在此处完成工作。 ;)
答案 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);
}