2015-08-26 18 views
1

我正在使用visual studio 2008開發網頁。問題描述如下:我在網頁上有3個文本框,一個是「價格」,第二個是「數量」,第三個是「金額」。我想要得到價格*數量=金額。 我不想在這樣做的時候有任何buttonclicks。首先,我將價值輸入到價格中,然後即時將數值輸入到數量中,只要我將光標移出數量,我就會自動在第三個文本框中打印答案,而無需單擊按鈕。我想用javascript來做。使用javascript即時添加兩個數字

+0

可能重複:http://stackoverflow.com/questions/6441354/real-time-updating-of-values-表單 –

回答

-3
Price: <input type="text" id="price"> 
Quantity: <input type="text" id="quantity" onkeyup="myFunction()"> 
Amount: <input type="text" id="amount""> 

<script> 
function myFunction() { 
    var p = document.getElementById("price"); 
    var q = document.getElementById("quantity"); 
    var a = document.getElementById("amount"); 
    a.value = p.value * q.value ; 
} 
+0

不要使用'[onkeyup]',它已經過時了。 –

+0

http://www.w3schools.com/jsref/event_onkeyup.asp – Helio

+1

'只要我把光標移出數量' - onblur會更合適 –

1

您可以在輸入欄中使用change事件。每次輸入值改變時,都會觸發此事件。我不知道你的form是什麼樣子,但是這個代碼應該給你一個總的想法如何做到這一點:

quantityInput.addEventListener('change', function(){ 
    amountInput.value = parseInt(quantityInput.value) * parseInt(priceInput.value); 
}); 

如果你使用十進制數下工作,使用parseFloat()代替parseInt(),不過要小心,並且最好使用Math.round(),因爲浮點計算不是100%精確的。

+0

沒有'onchange'事件,事件名稱是'change'。而且由於OP寫道「只要我將光標移出數量」,模糊事件就會更加充分。 –

+1

我編輯了原始文章中的事件名稱。感謝那。一旦輸入失去焦點 - 即當用戶在其他地方點擊時,「blur」將被觸發。它與'change'基本相同。然而,我懷疑只有在實際值發生變化時纔會觸發'change',而每次都會觸發'blur'。它絕對不會造成太多麻煩,性能明智,但爲什麼要計算何時不需要? – ROAL

2

我認爲你的意思是blur事件,當textinput失去焦點時(如果你點擊它的話)它會被觸發。

綁定到您的textarea這樣的:

price.addEventListener("blur", function(event) 
{ 
    // do it 
}, true); 

小提琴:http://jsfiddle.net/egLzz5gb/