Jquery else如果为空

时间:2012-03-08 21:38:31

标签: javascript jquery nan

我正在使用它来计算金额并根据两个文本框获得折扣。这是有效的,但是当第二个框为空时我得到一个NaN。只要我输入第二个框就可以了。

$('#deal_price').keyup(function() {
var num1 = $("#deal_retail").val(),
num2 = $("#deal_price").val(),
result = parseInt(num1, 10) - parseInt(num2, 10);
result_percentage = result / parseInt(num1, 10);
result_percentage = parseFloat(result_percentage).toFixed(2);
result_percentage = result_percentage * 100;
$(".result_save").text(result); 
$(".result_percentage").text(result_percentage); 
});

我尝试用一​​个空的else替换result_save和result_percentage,如下所示

if (result_percentage == '' || result == '') { }
else {
$(".result_save").text(result); 
$(".result_percentage").text(result_percentage); 
}

我认为我没有得到如何使用空选项。是否有像PHP这样的东西

if(empty($myvar)){ 
// nothing
}
else {
$dosomething = '2';
}

2 个答案:

答案 0 :(得分:2)

如果要验证号码,请使用isNaN 此外,您还可以使用unary !if(..){}else{ ... }

,而不是使用if(!..){...}
if (!isNaN(result_percentage)) {                // If the input is a valid number
    $(".result_save").text(result); 
    $(".result_percentage").text(result_percentage); 
}

答案 1 :(得分:1)

看一下以下解决方案:

http://jsfiddle.net/2rMn6/

如果您使用三元运算符,则可以清除文本字段:

$(".result_save").text(isNaN(result) ? '' : result);
$(".result_percentage").text(isNaN(result_percentage) ? '' : result_percentage);