0

メニューの選択肢ごとに異なるオプションを表示したいと思います。MenuNo1 (textinput) = 1、2、3、4 または 5 の場合 - menuPrice1 の値は R70.00 である必要があります MenuNo1(textinput) = 8、9、12 のいずれかの場合 - menuPrice1 の値は R85 である必要があります.00 MenuNo1 (textinput) = 11 の場合 - menuPrice1 の値は R105.00 である必要があります

私はこのようにしてみました:

function calcMenu(form) {
var MenuPrice1 = (+form.MenuPrice1.value);
var MenuNo1 = (+form.MenuNo1.value);

if ([1,2,3,4,5].indexOf(+form.MenuNo1.value) != -1) {
    MenuPrice1.value = "70";
} 
else if ([8,9,12].indexOf(+form.MenuNo1.value) != -1) {
    MenuPrice1.value = "85";
}
else if (+form.MenuNo1.value == 11)  {
    MenuPrice1.value = "105";    }  }

しかし、私のコードには何か間違っていると確信しています

4

2 に答える 2

2
function calcMenu(form) {
    if ([1,2,3,4,5].indexOf(+form.MenuNo1.value) != -1) {
        MenuPrice1.value = "70";
    } 
    else if ([8,9,12].indexOf(+form.MenuNo1.value) != -1) {
        MenuPrice1.value = "85";
    }
    else if (+form.MenuNo1.value == 11)  {
        MenuPrice1.value = "105";
   } 
}

この方法で動作する indexOf メソッドの例をここで見ることができます: http://jsfiddle.net/fHzEG/

于 2013-04-16T13:31:22.850 に答える
2

||OR 演算子を使用する必要があります

if (+form.MenuNo1.value === '8' || 
    +form.MenuNo1.value === '9' || 
    +form.MenuNo1.value === '12' )

また、 == または === を使用して、等しいかどうかを確認する必要があります

于 2013-04-16T13:29:13.397 に答える