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

时间:2014-01-23 02:57:32

标签: javascript jquery html input

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

HTML:

<label>Width</label><input type="text" id="width" />
<br>
<label>Length</label><input type="text" id="length" />
<br>
<label>Total</label><input type="text" id="total"/>

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)的值将乘以某个数字,在这种情况下为&#34; 2&#34;。

Tried to figure it out on jsfiddle

以下是没有if语句的代码:http://jsfiddle.net/e45SJ/

如何使用我已经拥有的代码的if语句实现我想要实现的目标?

编辑:如何添加多个if语句?我试过这个: http://jsfiddle.net/m2LxV/2/

2 个答案:

答案 0 :(得分:5)

有多个问题

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

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

    演示:Fiddle

答案 1 :(得分:2)

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

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

http://jsfiddle.net/LLu5s/

要记住的一些事情

  • 使用IF ELSE逻辑块
  • 是一个很好的例子
  • $('#total')。val('total')转换为&gt;选择input元素并将其值设置为字符串字符串值“total”
  • parseInt()会将字符串值转换为整数。因此,即使您从宽度和长度中选择了类型字符串的值。所以执行(w + l)实际上会导致将两个字符串组合在一起,而不是添加数字。