0
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负数或空值。

4

1 回答 1

0

假设您的浏览器引擎将1speedand解释2speed为变量(有些会,有些不会 - 变量名不应该以数字开头,所以用speed1and替换它们可能是明智的speed2)......

但是假设,那么您描述的情况是在处理您的 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块上的 else。

于 2013-04-19T18:30:34.790 回答