2015-10-16 161 views
2

這是我的HTMLJavaScript函數不工作

<form> 
    <p> 
     Enter the total stock value: <input id="total" type="number"onkeyup="calculate()"> 
    </p> 
    <p> 
     Enter the agreed commision rate:<input id="commision" type="number"> 
    </p> 
    <p> 
     <input id="calculate" type="number" readonly="readonly" placeholder="Result"> 
    </p> 
</form> 

,這是我的Javascript現在

calculate = function() { 
    var total = document.getElementById('total').value; 
    var commision = document.getElementById('commision').value; 
    document.getElementById('calculate').value = parseFloat(total)/100 * parseFloat(commision); 
} 

$(document).keyup(function(e) {  
    if(e.keyCode== 27) { 
     $("form")[0].reset(); 
    } 
}); 

,如果我的表格不裹在一個表單標籤我的計算函數完美地工作,但是當它在一個表單標籤中時,我會在控制檯中出現一個錯誤,提示「Uncaught TypeError:calculate不是函數」。 我試過沒有窗體標籤,但然後reset()函數不工作..

有沒有人有任何想法如何解決這個問題?

回答

5

這是因爲你有一個元素與ID計算,元素的ID被複製爲窗體對象的屬性(也窗口屬性),因此在你的情況下calculate是指在表單的範圍內使用DOM元素它已經超越了功能

<input id="txtcalculate" type="number" readonly="readonly" placeholder="Result"> 
+1

哇!這解決了我的問題!謝謝!!!! –