0

我有以下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>

我在那里进行了一些警报测试,并且正在调用该函数,但是在设置 fp 的值时失败了。

谁能明白为什么这行不通?

4

3 回答 3

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 中工作,请参阅此内容。这是一个跨浏览器解决方案。您这样做的方式仅适用于较新的浏览器。

于 2012-10-04T16:54:18.733 回答
1

没有回答你的问题,但在我看来,这<input type='finalPrice' ...>不是要你的意思。你可能是说<input type='text' name='finalPrice' ...>,对吧?

于 2012-10-04T16:56:47.837 回答
1

它不是 fp,值。将其更改为 fpvalue 它会工作

于 2012-10-12T18:23:56.113 回答