0

我有两个文本框来输入数字并使用 javascript 对这些数字求和。

我有以下条件来显示结果

  1. 如果文本框 1 (id : left) 未定义或值为 0 = 不显示任何输出

  2. 如果文本框 1(id:left)有值,检查文本框 2(id:right)的值

  3. 如果文本框 2 (id : right) 未定义或值为 0 = 不显示任何输出

  4. 如果文本框 2 (id : right) 的值不是 undefined\ 0,则检查文本框 1 (id : left) 的值,如果文本框 1 的值不是 undefined\ 0,则显示结果

  5. 如果文本框 2 (id : right) 的值不是 undefined\ 0,则检查文本框 1 (id : left) 的值,如果文本框 1 未定义\ 0,则显示:请在“文本框 1”中输入值

我正在尝试使用 javascript if、elseif 语句来实现这一点,但没有成功

这是小提琴设置:http ://fiddle.jshell.net/gYV8Z/6/ 我在这里做对了吗?

4

3 回答 3

0

这是javascript代码

HTML:

    <div class="input-left"><span><input onblur="calc()"  class="textbox" id="left" name="count" type="text" size="5"  value="" /></span>
</div>
<div class="input-right"><span><input onblur="calc();"  class="textbox" id="right" name="count" type="text" size="5"  value="" /></span>
</div>
<div id="result"></div>

Javascript:

function calc() {
    var a = parseFloat(document.getElementById('left').value) || 0;
    var b = parseFloat(document.getElementById('right').value) || 0;
    document.getElementById("result").innerHTML = (a + b) || "";
}
于 2013-07-29T04:42:04.227 回答
0

尝试这个

window.onload = function () {

    var left = document.getElementById('left'),
        right = document.getElementById('right'),
        result = document.getElementById("result");
    //  encase the logic inside the function
    function check(a, b, elem) {
        // No need to check for undefined as you using parseFlaot
        // So you are setting it to zero before passing the values
        // Just pass them to this function
        var txt = '';
        if (a === 0 || b === 0) {
           txt = "Please enter values into the input"
        } 
        else {
            txt = a + b;
        }
        result.innerHTML = txt;
    }

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

    function calc() {
        var a = parseFloat(left.value) || 0;

        var b = parseFloat(right.value) || 0;
        // Call the method where logic implemented 
        // You need to call it whenever the event is triggered
        check(a,b, this);
    }
}

检查小提琴

于 2013-07-29T04:46:06.313 回答
0

您正在使用没有函数/操作调用的“IF”“ELSE IF”语句在测试通过时运行。您可以通过简单地将测试包含在您的“calc()”函数中来清理整个事情。

像这样:

window.onload = function(){

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

function calc() {
if ((left.value != undefined) || (right.value != undefined)) {
    var a = parseFloat(left.value) || 0;
    var b = parseFloat(right.value) || 0;
    result.innerHTML = ( a + b ) || "";
} else {
     result.innerHTML = "Enter appropriate values";
}
}

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

http://jsfiddle.net/gYV8Z/6/embedded/result/

于 2013-07-29T04:51:30.737 回答