2013-09-26 233 views
-2

我有一個標準的計算javascript,現在我需要插入基於用戶選擇的值的多個計算 - 似乎無法讓它工作....!任何機會有人可以看看,並告訴我我要去哪裏錯了?Javascript:從下拉列表中選擇值

<script type="text/javascript"> 
function calculate() { 
    var noPeople = document.ContactForm.noPeople.value; 
    var ddl = document.getElementById("menuType"); 
    var selectedValue = ddl.options[ddl.selectedIndex].value; 
    var noPeople_excess = (noPeople-6); 

    if (selectedValue == 3) { 
    var basic = 337; 
    var marchCost = (50*noPeople); 
    if (marchCost <= basic)   { 
     document.ContactForm.marchCost.value = 337; 
     document.ContactForm.marchCostVin.value = basic +(noPeople*25) 
    } else { 
     document.ContactForm.marchCost.value = basic +(noPeople_excess*34); 
     document.ContactForm.marchCostVin.value = basic +(noPeople_excess*34)+(noPeople*25) 
    } 
    } else (selectedValue == 4) { 
    var basic = 368; 
    var marchCost = (55*noPeople); 
    if (marchCost <= basic) { 
     document.ContactForm.marchCost.value = 368; 
     document.ContactForm.marchCostVin.value = basic +(noPeople*25) 
    } else { 
     document.ContactForm.marchCost.value = basic +(noPeople_excess*44); 
     document.ContactForm.marchCostVin.value = basic +(noPeople_excess*44)+(noPeople*25) 
    } 
    } else (selectedValue == 5) { 
    var basic = 419; 
    var marchCost = (60*noPeople); 
    if (marchCost <= basic) { 
     document.ContactForm.marchCost.value = 419; 
     document.ContactForm.marchCostVin.value = basic +(noPeople*25) 
    } else { 
     document.ContactForm.marchCost.value = basic +(noPeople_excess*54); 
     document.ContactForm.marchCostVin.value = basic +(noPeople_excess*54)+(noPeople*25) 
    } 
    } 
} 
</script> 
+0

你能詳細說明究竟是什麼錯誤嗎? – Aashray

+0

您是否期待我們調試這整個事情?只隔離有問題的部分併發布它 – Itay

+0

基本上,當沒有下拉菜單時,計算工作和成本在表單上給出。現在有多個值可供選擇,沒有任何反應,表單上沒有任何內容出現。 – user2818741

回答

0

我可能會混淆兩者的DDL,但無論哪種選擇的值應與整數比較的selectedIndex:

var selectedValue = ddl.selectedIndex; 

或條件應該檢查​​字符串:

if (selectedValue == "3"){ 
1

這個問題的確得到了很多次的回答,不過這裏有一個簡單的解決方案:

//get select value and assing to an input element 
function setValue(selectId, elemId) { 
    var thisID = selectId, 
    valueSelected = document.getElementById(thisID).value 
    console.log(thisID + ' has value of ' + valueSelected); 
    document.getElementById(elemId).value = valueSelected; 
} 

http://plnkr.co/edit/rnenKVaNcJ9RhqLzUaWi

關於。

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 –

+0

對不起,編輯... – mzografski

0

你偷別人丟失的,如果..如:否則,如果(==的SelectedValue 4)

我建議使用開關(的SelectedValue){情況3:...打破;情況4:...等 在這種情況下更容易閱讀,特別是如果您添加更多選項。

+0

是的,你是對的 - 有一個「其他如果」失蹤....!把它放進去,一切正常。謝謝。 – user2818741