2013-04-16 23 views
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基於數字選擇的Javascript計算 - HTML

我曾嘗試做這種方式:

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"; } } 

但我我確定在我的代碼上有不正確的東西

回答

2

您需要使用|| OR操作

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

另外你需要使用==或者===檢查,看它是否等於

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/

+1

這不起作用,因爲您將值轉換爲整數,但是檢查字符串。你在小提琴中做得很好。 :) – Avaq

+0

啊,這是真的,+會投給int。我會更新這個... –

+0

@ChrisDixon謝謝。我在控制檯中收到此錯誤? 'MenuPrice1未定義' – user1426583