选择带开关箱的选项计算
Select option calculation with switch case
我要做的是有一个下拉菜单,在这种情况下选择一个选项,我想要2瓶jwWhisky。然后,我希望它进入js,并让开关箱输入瓶子的价格,并将其乘以我想要的瓶子。
HTML:
function calculate() {
"use strict"
var myBox1 = document.getElementById('drinks1Num').value;
var myBox2 = document.getElementById('drinks1Type').value;
var result = document.getElementById('result');
var myResult = myBox1 * myBox2;
var inputCost = 0;
switch (myBox2) {
case 'jwWhisky':
inputCost = 49;
break
//default:
// alert ("You haven't coded this yet");
}
result.value = myResult;
}
<legend>
Sprits Option
</legend>
<select id="drinks1Num" onchange="calculate()">
<option value="0">--- Select ---</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select id="drinks1Type" onchange="calculate()">
<option value="0">--- Select ---</option>
<option disabled="disabled"></option>
<optgroup label="whisky">
<option value="jwWhisky">Johnnie Walker 700ml</option>49$
</optgroup>
</select>
<input id="result" />
你只需要把myBox1 * inputCost
的计算移到你的开关后:
function calculate() {
"use strict"
var myBox1 = document.getElementById('drinks1Num').value;
var myBox2 = document.getElementById('drinks1Type').value;
var result = document.getElementById('result');
var inputCost=0;
switch (myBox2) {
case 'jwWhisky':
inputCost=49;
break
//default:
// alert ("You haven't coded this yet");
}
result.value = myBox1 * inputCost;
}
<select id="drinks1Num" onchange="calculate()">
<option value="0">--- Select ---</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select id="drinks1Type" onchange="calculate()">
<option value="0">--- Select ---</option>
<option disabled="disabled"></option>
<optgroup label="whisky">
<option value="jwWhisky">Johnnie Walker 700ml</option>49$
</optgroup>
</select>
<input id="result" "/>
(而且,正如您所看到的,您根本不需要myResult
变量。)
注意,将价格存储为每个选项元素的data-
属性可能会更好,因为这样可以将产品信息保存在HTML中的一个地方,并且不需要JS switch语句。EDIT -使用一个或多个data-
属性可以让你添加额外的信息,这些信息不会与表单一起提交,但可以用于你的JS中的计算,而value
属性仍然可以用于产品代码(并将被提交)。也许像这样:
function calculate() {
"use strict";
var num = document.getElementById('drinks1Num').value;
var drinkType = document.getElementById('drinks1Type');
var unitCost = drinkType.options[drinkType.selectedIndex].getAttribute('data-cost');
document.getElementById('result').value = num * unitCost;
}
<select id="drinks1Num" onchange="calculate()">
<option value="0">--- Select ---</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select id="drinks1Type" onchange="calculate()">
<option value="0">--- Select ---</option>
<option disabled="disabled"></option>
<optgroup label="whisky">
<option value="jwWhisky" data-cost="49">Johnnie Walker 700ml ($49)</option>
<option value="something" data-cost="22">Something else ($22)</option>
</optgroup>
</select>
<input id="result" "/>
(还请注意,在您的原始HTML中,您在之后有49$
关闭</option>
标记,因此在我的回答的第二个版本中,我已将其移动到选项元素的文本中。)
相关文章:
- 计算用户从多个文件中选择的选项数量
- CKEditor中没有从计算机上传图像的选项
- JS函数,用于计算产品数量和选项附加税
- 如何计算量角器中下拉选项的总数
- 以N/a作为选项计算评级
- 从选择选项下拉列表中计算多个值
- 使用Selenium网络驱动程序计算ng repeat生成的选项卡集中的选项卡数
- Javascript 根据选中的选项计算值
- 计算从打开选项卡到关闭选项卡的时间
- 如何使用 jquery 计算选项卡的高度以向下推页脚
- Shopify (液体) 计算选择和更改样式中的选项大小
- jQuery - 如何计算 if/else 语句的两个选择选项值
- jQuery/js-根据状态和数量选择选项计算税款、小计和总额
- 使用jquery根据所选选项计算小计和总价
- 根据选择的选项显示一个Div(带有计算值)——Angular
- 使用javascript与选择选项进行计算
- 计算selectize.js中的选项个数
- 用Javascript和/或jQuery计算select选项的值
- 选择带开关箱的选项计算
- 使用JavaScript根据下拉选择的选项计算金额