JavaScript中的Switch语句

JavaScript中的Switch语句,javascript,switch-statement,Javascript,Switch Statement,我试图运行一个switch语句,看看是否选择了信用卡选项,并将总成本增加2%,下面的代码就是我创建的 if (payment.value){ switch (payment.value) { case 'Credit Card' cost = cost + (cost * 0.2); break; case 'Gold Bullion' cost = cos

我试图运行一个switch语句,看看是否选择了信用卡选项,并将总成本增加2%,下面的代码就是我创建的

        if (payment.value){
      switch (payment.value) {
          case 'Credit Card'
            cost = cost + (cost * 0.2);
            break;
          case 'Gold Bullion'
            cost = cost + (cost * 0.5);
            break;
          default: cost;
      }

<label for="type">Payment Method</label> <select name="payment" id="payment" required>
      <option value="DC">Debit Card</option>
      <option value="CC">Credit Card</option>
      <option value="Cash">Cash</option>
      <option value="GB">Gold Bullion</option>
  </select>

你错过了:在案件陈述中

switch (payment.value) {
      case 'Credit Card':
        cost = cost + (cost * 0.2);
        break;
      case 'Gold Bullion':
        cost = cost + (cost * 0.5);
        break;
      default: cost;
  }
如果在选项上设置值属性,则该属性将是选中该选项时的值,而不是option元素中的文本。在这种情况下,DC,CC,等等


gmast对您的语法错误的解释也是正确的。

看起来您缺少信用卡和金条的冒号

转换支付价值{ “信用卡”案例: 成本=成本+成本*0.2; 打破 “金条”案例: 成本=成本+成本*0.5; 打破 违约:成本; }

您可以使用以下功能:

var payment = document.getElementById('payment');
if (payment.value) {
  switch (payment.value) {
      case 'CC':
        cost *= 1.02;
        break;
      case 'GB':
        cost *= 1.5;
        break;
      // Etc. you can use more cases of course.
}
看看案例,它使用选项的valueproperty,而不是您在选项标记之间插入的文本


我使用var payment=document.getElementById'payment'清除了顶部的var;你少了两个冒号。费用在哪里申报?此外,不需要默认值…成本+成本*0.2是20%的增长。对于2%,你想要0.02。看起来你也错过了很多东西!payment.value可以是DC、CC、现金或GB。不是“信用卡”等,即选项的文本不需要错误!
<label>Payment Method
   <select name="payment" id="payment" required>
      <option value="DC">Debit Card</option>
      <option value="CC">Credit Card</option>
      <option value="Cash">Cash</option>
      <option value="GB">Gold Bullion</option>
   </select>
</label>