-2

私は標準の計算 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>
4

3 に答える 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

よろしく。

于 2013-09-26T09:32:06.877 に答える
0

あなたのelseにifがありません..例:else if (selectedvalue==4)

switch(selectedvalue) { case 3: ... break; を使用することをお勧めします。ケース 4: ...etc は、特にオプションを追加すると読みやすくなります。

于 2013-09-26T09:33:44.660 に答える
0

2 つの DDL について混乱するかもしれませんが、整数と比較するには、選択した値を selectedIndex にする必要があります。

var selectedValue = ddl.selectedIndex;

または条件は文字列をチェックする必要があります:

if (selectedValue == "3"){ 
于 2013-09-26T09:27:47.030 に答える