2013-07-28 50 views
3

我有2個HTML文本框供用戶輸入數字。綜上所述那些數字,我是值傳遞給JavaScript變量和加入後顯示結果以HTML DIV部分如何在同一時間使用JavaScript的onkeyup多個ID

<div class="input-left"><span><input class="textbox" id="left" name="count" type="text" size="5" value="" /></span></div> 

<div class="input-right"><span><input class="textbox" id="right" name="count" type="text" size="5" value="" /></span></div> 

<div id="result"> </div> 

的javascript:

document.getElementById('left').onkeyup = function() { 
    var a = parseFloat(this.value); 

} 

document.getElementById('right').onkeyup = function() { 
    var b = a + parseFloat(this.value); 
    document.getElementById("result").innerHTML = b || 0 ; 
} 

但我有JavaScript的問題。它不顯示結果。如何在同一個onkeyup函數中添加這兩個函數。

FIDDLE SETUP

回答

5

試試這個:

window.onload = function(){ 

    var left = document.getElementById('left'); 
    var right = document.getElementById('right'); 
    var result = document.getElementById("result"); 

    left.onkeyup = calc; 
    right.onkeyup = calc; 

    function calc() { 
     var a = parseFloat(left.value) || 0; 
     var b = parseFloat(right.value) || 0; 
     result.innerHTML = a + b ; 
    } 

} 

的jsfiddle:http://fiddle.jshell.net/gYV8Z/3/

更新:隱藏在案件的總和爲零的結果,改變最後一行:

 result.innerHTML = (a + b) || ""; 

JSFiddle:http://fiddle.jshell.net/gYV8Z/4/

+1

+1,儘管我不會建議'window.onload',因爲那麼晚發生。可能最好只是將腳本放在頁面底部。 –

+0

@Cherniv:這個工作,我能隱藏結果,顯示爲0後,我從兩個文本框中刪除值 – acr

+0

@ user1128648看看我的更新,是你想要什麼? – Cherniv

1
document.getElementById('left').onkeyup = function() { 
var a = parseFloat(this.value); 

} 

document.getElementById('right').onkeyup = function() { 
var b = a + parseFloat(this.value); 
document.getElementById("result").innerHTML = b || 0 ; 
} 

它你的代碼,變種a是局部變量。使其成爲全局變量。

但我會使用此代碼。

function add(){ 
    return parseFloat(document.getElementById('left').value) + parseFloat(document.getElementById('right').value); 
} 

document.getElementById('left').onkeyup = function() { 
document.getElementById("result").innerHTML = add(); 

} 

document.getElementById('right').onkeyup = function() { 
document.getElementById("result").innerHTML = add(); 
} 
+0

*「使其成爲全局變量」*創建全局數據幾乎從來都不是正確的解決方案(當然不在這裏)。 –

+0

我明白這個問題只是onKeyup事件可以計算。 –

+0

但它對ux不好,所以我建議修復它。 –

相關問題