我有以下javascript函数:
function updatePrintCost()
{
var qty = parseFloat(document.getElementById('qty').value);
var pp = parseFloat(document.getElementById('pp').value);
var finalPrice = qty * pp;
if (!isNaN(finalPrice))
fp.value = "$" + finalPrice.toFixed(2);
else
fp.value = "Error";
}
由以下HTML代码调用:
<table>
<tr>
<td style='border:none;'>Quantity:</td>
<td style='border:none;'><input type='text' id='qty' name='quantity' onChange="updatePrintCost()" style='width:50px;' /></td>
<td style='border:none;'>Print Price:</td>
<td style='border:none;'><input type='text' name='printPrice' id='pp' onChange="updatePrintCost()" style='width:50px;' /></td>
<td style='border:none;'> = </td>
<td style='border:none;'><input type='finalPrice' id='fp' placeholder='0.00' style='width:75px;' /></td>
</tr>
</table>
我在那里放了一些警报测试,调用了函数IS,但在设置fp的值时失败了。
有人能看出为什么这不起作用吗?
答案 0 :(得分:4)
您对fp的声明在哪里?你需要:
var fp = document.getElementById('fp');
或者:
if (!isNaN(finalPrice))
document.getElementById('fp').value = "$" + finalPrice.toFixed(2);
else
document.getElementById('fp').value = "Error";
你在finalPrice类型中也有一个奇怪的html输入,而不是常规类型。
如果您想了解它在Firefox中运行的原因,请参阅this。这是一个跨浏览器的解决方案。你这样做的方式只适用于较新的浏览器。
答案 1 :(得分:1)
没有回答你的问题,但在我看来<input type='finalPrice' ...>
并不是你想要的。你可能意思是<input type='text' name='finalPrice' ...>
,对吧?
答案 2 :(得分:1)
它不是fp,价值。 将其更改为f.p.value 它会工作