Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用带有输入值的if语句jquery_Javascript_Jquery_Html_Input - Fatal编程技术网

Javascript 使用带有输入值的if语句jquery

Javascript 使用带有输入值的if语句jquery,javascript,jquery,html,input,Javascript,Jquery,Html,Input,我有一个简短的脚本,它通过乘以输入值来计算一个数字。该脚本工作正常,但现在我想添加if语句。例如: HTML: JavaScript: var w = $('#width').val(); var l = $('#length').val(); var total1 = 2; var total2 = 3; if((w * l) > 5){ total = total1 * (w + l); parseInt($('#total').val('total')); }

我有一个简短的脚本,它通过乘以输入值来计算一个数字。该脚本工作正常,但现在我想添加if语句。例如:

HTML:

JavaScript:

var w = $('#width').val();
var l = $('#length').val();
var total1 = 2;
var total2 = 3;    
if((w * l) > 5){
    total = total1 * (w + l);
    parseInt($('#total').val('total'));
}
if((w * l) < 5){
    totalnew = total2 * (w + l);
    parseInt($('#total').val(totalnew));
}
因此,如果width x length>5,那么width x length的值将乘以某个数字,在本例中为2

下面是不使用if语句的代码:

如何用我已有的代码实现我希望通过if语句实现的目标


编辑:如何添加多个if语句?我试过这个:

有多个问题

您需要在更改处理程序中进行计算,当长度/高度更改时将调用该处理程序 当您执行w+l时,您正在执行字符串连接,因为w和l都是字符串值 l+w为5,则不满足任何条件。 parseInt$'total'.val'total'只将值total分配给元素,而parseInt没有任何意义 您需要使用更改处理程序

jQuery(function () {
    var total1 = 2;
    var total2 = 3;

    $('#width, #length').change(function () {
        var w = +$('#width').val();
        var l = +$('#length').val();
        var total;
        if ((w * l) > 5) {
            total = total1 * (w + l);
        } else {
            total = total2 * (w + l);
        }
        $('#total').val(total);
    })
})

演示:

由于问题要求使用您的代码进行修改,我就是这么做的。这里没有太大的变化,我评论了可能看起来很困难的任何部分

function calculate()
{
    //Parse the string value into an integer
    var w = parseInt($('#width').val());
    var l = parseInt($('#length').val());
    var total1 = 2;
    var total2 = 3;

    //Perform IF
    //suggestion to use an If {} Else
    if((w * l) > 5)
    {
        //Set an internal value of total
        var total = total1 * (w + l);
        //Update the label's value to total
        $('#total').val(total);
    }
    if((w * l) < 5)
    {
        //Same logic as above
        var total = total2 * (w + l);
        $('#total').val(total);
    }
}

//Simple button event for testing
$('button').click(function()
                  {
                    calculate();
                  });
要记住的一些事情

这是一个使用IF-ELSE逻辑块的好例子 $'total'.val'total'转换为>选择输入元素并将其值设置为total的字符串值 将字符串值转换为整数。因此,即使您从字符串类型的宽度和长度中选择了值。因此,执行w+l实际上会将两个字符串组合在一起,而不是添加数字。
+是否将其转换为整数?@Bic是。。。而不是整洁。这是我不知道的。谢谢:为什么要使用+而不是parseInt?@cgatian如果期望值有效,那么这两个值之间没有太大区别,请参见,并且-对于我来说,这里输入的更少,您试图用它实现什么:parseInt$'total'。val'total';因为这对我来说毫无意义。我想在没有else的情况下实现多个if语句。我该怎么做呢?还有,没有“计算”按钮,我怎么做?我试过这样做:使用IF{}ELSE IF{}ELSE IF{}或者switch语句。
function calculate()
{
    //Parse the string value into an integer
    var w = parseInt($('#width').val());
    var l = parseInt($('#length').val());
    var total1 = 2;
    var total2 = 3;

    //Perform IF
    //suggestion to use an If {} Else
    if((w * l) > 5)
    {
        //Set an internal value of total
        var total = total1 * (w + l);
        //Update the label's value to total
        $('#total').val(total);
    }
    if((w * l) < 5)
    {
        //Same logic as above
        var total = total2 * (w + l);
        $('#total').val(total);
    }
}

//Simple button event for testing
$('button').click(function()
                  {
                    calculate();
                  });