Javascript 用于数值计算的带变量的If elseif

Javascript 用于数值计算的带变量的If elseif,javascript,jquery,html,Javascript,Jquery,Html,我有两个文本框来输入数字,并使用javascript对这些数字求和 我有以下条件来显示结果 如果文本框1(id:left)未定义或值为0=不显示任何输出 如果文本框1(id:left)有值,请选中文本框2(id:right)的值 如果文本框2(id:right)未定义或值为0=不显示任何输出 如果文本框2(id:right)的值不是未定义的\0,请检查文本框1(id:left)的值,如果文本框1的值不是未定义的\0,则显示结果 如果文本框2(id:right)的值不是未定义的值\0,请检查文本框

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

我有以下条件来显示结果

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

  • 如果文本框1(id:left)有值,请选中文本框2(id:right)的值

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

  • 如果文本框2(id:right)的值不是未定义的\0,请检查文本框1(id:left)的值,如果文本框1的值不是未定义的\0,则显示结果

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

  • 我试图使用javascript if、elseif语句实现这一点,但没有成功


    这里是小提琴设置:我在这里做的正确吗

    下面是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>
    
    function calc() {
        var a = parseFloat(document.getElementById('left').value) || 0;
        var b = parseFloat(document.getElementById('right').value) || 0;
        document.getElementById("result").innerHTML = (a + b) || "";
    }
    
    试试这个

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

    当测试通过时,您正在使用没有函数/操作调用的“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;
    }
    

    问题上有jQuery标记,但代码中没有jQuery。您想要jQuery答案还是普通代码?设置的fiddle没有任何jQuery用法。因此,我假设@acr正在寻找普通的javascript代码,它满足1、2和3个条件,但不满足4和5。