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