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 = 20は、2speed = 25負または空です。

4

1 に答える 1

0

ブラウザ エンジンが1speedandを変数として解釈していると仮定すると (そうするものもあれば、そうでないものもあります -- 変数名は数字で始まるべきではないので、おそらくこれらをand2speedに置き換えるのが賢明でしょう)...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ブロックの else として具体的に処理することもできます。

于 2013-04-19T18:30:34.790 に答える