javascript - 复选框的空值 - Switch 语句

标签 javascript dom

我有带有输入文本框和复选框的基本表单。该示例当前显示两个项目。我正在尝试使用 switch case 来确定检查的内容,然后根据数量和用户选择计算总数。我在 mufin1.checked == true 的开关盒内收到错误。如何获得正确的返回值? JSFIDDLE

JS

  function charge(){
      var q_muffin1 = document.getElementById('muffin_quantity1');
      var muffin1 = document.getElementById('muffin1');
      var q_muffin2 = document.getElementById('muffin_quantity2');
      var muffin2 = document.getElementById('muffin2');
      var charge;
      var form = document.getElementById("muffinOrder");
      var checkbox = form.getElementsByTagName("checkbox");

      switch (checkbox.checked) {
          case (mufin1.checked ==  true):
          charge += q_muffin1 * muffin1;
          break;
          case (mufin2.checked ==  true):
          charge += q_muffin2 * muffin2;
          break;
        default:
          window.alert("Sorry, we are out of");
      }
      window.alert("Your total is: $" + charge);
      return false;
 }

html

<form action="" id="muffinOrder" onsubmit="return charge()">
Quantity: <input type="text" name="muffin_quantity1" id="muffin_quantity1"><input type="checkbox" name="muffin1" id="muffin1" value=".59">Blueberry Muffin .59&cent;<br />
Quantity: <input type="text" name="muffin_quantity2" id="muffin_quantity2"><input type="checkbox" name="muffin2" id="muffin2" value=".69">Banana Nutted Muffin .90&cent;<br />
<input type="submit" value="Submit" >
 </form>

最佳答案

假设您不想处理两个复选框都被选中的情况,您可以这样写:

switch (true) {
      case (mufin1.checked):
      charge += q_muffin1 * muffin1;
      break;
      case (mufin2.checked):
      charge += q_muffin2 * muffin2;
      break;
    default:
      window.alert("Sorry, we are out of");
  }

但是如果没有这些变量 xxx1 和 xx2,你的整个代码可能会更干净。我不确定整个目标,但这可能是这样的:

var charge = 0;
[1,2].forEach(function(id){
   var muffin = document.getElementById('muffin'+id);
   var q_muffin = document.getElementById('muffin_quantity'+id).value;
   if (muffin.checked) charge += q_muffin;
});
window.alert("Your total is: $" + charge);

关于javascript - 复选框的空值 - Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24155197/

相关文章:

javascript - 将 d3 与自定义 Angular Directive(指令)集成

javascript - 将 iframe 中的 css 类应用于主文档

javascript - 空间位置在这些跨度中重要吗?

javascript - 尝试获取非对象的属性 -> 如何检查对象是否存在

c# - 如何将数据从 JavaScript 传递到后面的 ASP.NET 代码中?

javascript - body 没有 getElementById 吗?

javascript - 如何分别检索父元素内子元素之前和之后的 HTML?

javascript - 如何在JavaScript中获取具有特定属性的所有子元素

javascript - 我怎样才能从容器中访问每 5 个 Div,这样我就可以使用 jQuery 的添加类

javascript - 如何使用 JavaScript 拆分并加粗该字符串?