2013-09-26 176 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