使用jquery从数组或switch语句而不是输入值生成条件

使用jquery从数组或switch语句而不是输入值生成条件,jquery,Jquery,大家好,首先,我的脚本工作得很好,但我有一个小问题,我想解决,但我不知道它是否可能 我有这样的表单元素,如select、datalist和输入类型,如radio和checkbox。我对条件语句进行编码的方式是,在出现问题的地方,我依赖它的值。如果我以后更改该值会怎么样?我将不得不改变我的代码以及 例如,我有一个无线电输入,用户必须选择他们想要的食物 <h2>Question 1: meal</h2> <div class="meal-wrapper">

大家好,首先,我的脚本工作得很好,但我有一个小问题,我想解决,但我不知道它是否可能

我有这样的表单元素,如select、datalist和输入类型,如radio和checkbox。我对条件语句进行编码的方式是,在出现问题的地方,我依赖它的值。如果我以后更改该值会怎么样?我将不得不改变我的代码以及

例如,我有一个无线电输入,用户必须选择他们想要的食物

<h2>Question 1: meal</h2>
  <div class="meal-wrapper">
    <label class="radio">
      <input name="meal-356" value="Burger with fries" type="radio"/>
      Burger with fries
    </label>
  </div>
  <div>
   <label class="radio">
     <input name="meal-356" value="Chicken with rice" type="radio" />
     Chicken with rice</label>
  </div>
现在我想要的是,不用依赖输入值,我可以只使用数组,还是太难,或者你可以提出一个更简单的解决方案,这样我就不必在输入值改变时手动编辑代码

提前感谢这是我的完整剧本

$document.readyfunction{ $'input:radio[name=Fine-356]'。changefunctionev{ 如果$this.val==“汉堡加薯条”{ var=20; } 否则{ var=30; } $'MEIN'.textMEIN.toFixed2.trigger'change'; }; $'input:radio[name=Diverses-123]'{ 如果$this.val==“冰茶”{ var=1; } 如果$this.val=='Coke'{ var=1.20; } 如果$this.val=='Lemonade'{ var=2; } 如果$this.val=='Water'{ var=1.75; } 否则,如果$this.val==“热巧克力”{ var=3; } 如果$this.val==‘热咖啡’{ var=1.25; } 否则{ var=0; } $'drinks'.textdrinks.toFixed2.触发'change'; }; $'input:radio[name=extras-781]'{ 如果$this.val=='Rice'{ var-extras=10; } 如果$this.val==‘肉汁’{ var-extras=5; } 否则{ var-extras=0; } $'extras'.textextras.toFixed2.trigger'change'; }; $'textarea[name=spoon-112]'{ var spoon=$this.val.replace/\n/g; var spoon=spoon*.25; $spoon.textpoon.trigger'change'; }; $'input:text[name=fork-143]'.keyupfunctionev{ var fork=$this.val.replace/\n/g; var fork=fork*.5; $fork.textfork.trigger'change'; }; $“餐食、饮料、附加品、汤匙、叉子”。关于“改变”,功能E{ var总计=$“膳食、饮料、额外服务、汤匙、叉子”。toArray.reducefunctionacc,val{ 返回acc++val.textContent; }, 0; $'total'.texttotal.toFixed2; } }; 基于单选按钮的计算器 问题1:膳食 薯条汉堡 米饭鸡 问题2:饮料 冰茶 焦炭 柠檬水 水 热巧克力 热咖啡 禁止喝酒-123 问题3:额外费用 大米 肉汁 没有额外的 问题4:还有多少汤匙? 问题5:有多少额外的叉子? 膳食: 饮料: 额外费用: 勺子: 叉子: 总数: 我建议您使用利用[key,value]对的数据类型。我认为它适合你的情况,假设没有任何重复的钥匙

$document.readyfunction{ var mealMap=新地图; 米饭汉堡配薯条,20份; 米饭鸡,30只; $'input:radio[name=Fine-356]'。changefunctionev{ var MEIN=mealMap.get$this.val; $'MEIN'.textMEIN.toFixed2.trigger'change'; };
};谢谢你的输入,但是我尽量避免输入汉堡加薯条的值,这样我就可以在以后的任何时候更改它,而不必更改jquerycodes@cryptohustla我认为这是不可能做到的,除非您将诸如20、30之类的值定义为每个相应输入的属性。但是,由于安全问题,我不建议这样做,除非您对后端进行了另一次检查。你这么做了吗?@cryptohustla逻辑有缺陷,再想想。如果你假设物品的顺序是固定的,那么你可以直接使用。你知道吗。。它做了一些实验,效果非常好:Di确实使用了索引:D使用了您的建议
$('input:radio[name="meal-356"]').change(function(ev) {

  if ($(this).val() == 'Burger with fries') {
    var meal = 20;
  } else {
    var meal = 30;
  }
  $('#meal').text((meal).toFixed(2)).trigger('change');

});