javascript值即将出现空不确定如何处理它

时间:2013-04-19 18:22:50

标签: javascript

function updategeneral() {
    //tmp = "fine_" + tmp + "_";
    var actual = doc.findItem("1speed").value;
    var posted = doc.findItem("2speed").value;
    amt = "";
    if (1speed != "" && 2speed != "") {
        var a = 1 * 1speed;
        var b = 1 * 2speed;
        if (a - b <= 9) {
            alert(amt);
            amt = doc.getDefault("general_spb_1_to_15");
        } else if (a - b <= 15) {
            amt = doc.getDefault("general_spb_16_to_25");
        } else if (a - b <= 25) {
            amt = doc.getDefault("general_spb_15_to_19");
        } else if (a - b <= 29) {
            amt = doc.getDefault("general_spb_26+");
        }
        doc.findItem("mcare_amount").value = amt;
        alert(doc.findItem("mcare_amount").value = amt);
    }
}

默认值为:

general_spb_1_to_15=30.00 || general_spb_16_to_25=40.00 || general_spb_26+=50.00

我的问题是,当amt为空或0时,它始终为general_spb_1_to_15=30.00。我不知道如何解决这个问题 - 请有人帮忙吗?我使用的值是1speed = 202speed = 25,它们是负数或空的。

1 个答案:

答案 0 :(得分:0)

假设您的浏览器引擎正在将1speed2speed解释为变量(有些将会,有些则不会 - 变量名称不应该以数字开头,因此替换可能是明智的这些与speed1speed2)...

但是假设那样,那么你描述的情况是在处理if语句时看到a - b = -5的值,这意味着它被

捕获
if (a - b <= 9) {
   alert(amt);
   amt = doc.getDefault("general_spb_1_to_15");
} 

要更改您获得的结果,您应该为if语句结构添加另一个选项。也许:

if (b > a)
{
     //do something for this special case
} else if (a - b <= 9) {
     alert(amt);
     amt = doc.getDefault("general_spb_1_to_15");
} else if ...

您可能还希望专门处理speed1 / speed2中的一个或两个作为外if块上的其他内容为空的情况。