2012-10-04 30 views
0

罰款我有javascript函數如下:的Javascript沒有工作在IE,但在FF

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

'isNaN'的代碼是什麼? – Shmiddty

+0

什麼是變量'fp'? –

+0

另外,你在哪裏初始化'fp'?我沒有看到它被宣佈。 – Shmiddty

回答

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輸入。

請參閱this如果你想知道它爲什麼在Firefox中工作。這是一個跨瀏覽器解決方案。你在做的方式只適用於較新的瀏覽器。

+0

這可能是某處,否則它不會在FF中工作... – roelandvanbeek

+0

就是這樣!不知道它是如何工作的FF – Brds

+0

除非你告訴它,否則Javascript不知道fp是元素。您也可以在幾秒鐘內完成我發佈的內容。 – fanfavorite

1

不回答你的問題,但在我看來,<input type='finalPrice' ...>不是你想要的意思。你的意思可能是<input type='text' name='finalPrice' ...>,對吧?

+0

謝謝...簡單的大腦放屁 – Brds

1

它不是fp,value。 更改爲f.p.​​value 它會工作

相關問題