如何同时使用javascript keyup多个id

时间:2013-07-28 08:07:31

标签: javascript html

我有2个html文本框供用户输入数字。为了对这些数字求和,我将值传递给JavaScript变量,并在添加后将结果显示到html div部分

<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

2 个答案:

答案 0 :(得分: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)

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 ;
}

它是你的代码,var 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();
}