使用javascript与选择选项进行计算
Doing calculations using javascript with select options?
谁来帮我写点javascript代码。我正在使用asp.net建立一个网站,其中有多个html选择元素和他们选择的选项决定了输入框的值将是什么,请参阅此链接:http://codepen.io/anon/pen/evAuc
我将有大约67个像这样的下拉菜单,这将是一个低效率代码的噩梦。
请帮我写一个更有效的代码为这两个选择,然后我可以自己做剩下的。
欢呼。
我将代码分成几个部分(我使用jquery),尽管您仍然应该更改函数名称和calculateValue实现以使代码更清晰。
$(document).ready(function(){
initCalculation($('#keyTechTextBox'),$("#dropdown_serverVirtualisation"),$("#dropdown_desktopVirtualisation"));
//more can be added here
});
function initCalculation(inputField,select1,select2){
select1.change(function(){ //this can be done more generic
inputField.val(calculateValue(select1.val(),select2.val()).toFixed(0)+"%");
});
select2.change(function(){
inputField.val(calculateValue(select1.val(),select2.val()).toFixed(0)+"%");
});
}
function calculateValue(firstOpt,secondOpt){ //more abstract function name please :D
//you should really optimize this.. - i did some
var sV_Value = 10;
var sV1 =0;
var sV2 = sV_Value;
var dV1 =0;
var dV2 = dV_Value;
if (firstOpt === "G") {
sV1 = sV_Value;
}
if (firstOpt === "O") {
sV1 = sV_Value * 0.5;
}
if (firstOpt === "A") {
sV1 = sV_Value * 0.3;
}
if (firstOpt === "R") {
sV1 = 0;
} else if (firstOpt === "U") {
sV1 = 0;
}
if (secondOpt === "N") {
dV2 = 0;
}
if (secondOpt === "G") {
dV1 = dV_Value;
}
if (secondOpt === "O") {
dV1 = dV_Value * 0.5;
}
if (secondOpt === "A") {
dV1 = dV_Value * 0.3;
}
var keyTechTotal1 = sV1 + dV1;
var keyTechTotal2 = sV2 + dV2;
return (keyTechTotal1) / (keyTechTotal2) * 100;
}
下面我将展示一个更通用的javascript解决方案
更改HTML中每个选项的最小和最大属性,并从那里开始计算。
一般可以在。net
中插入数据最小和最大属性。<input class="textBox" runat="server" type="text" id="keyTechTextBox" readonly="true" />
<select runat="server" id="dropdown_serverVirtualisation" onchange="keyTechAdoption()">
<option class="lightgrey" value="N" data-min="0" data-max="1">N</option>
<option class="green" value="G" data-min="0" data-max="1">G</option>
<option class="orange" value="O" data-min="0" data-max="1">O</option>
<option class="yellow" value="A" data-min="0" data-max="1">A</option>
<option selected="selected" class="red" value="R" data-min="0" data-max="1">R</option>
<option class="purple" value="U" data-min="0" data-max="1">U</option>
</select>
<select runat="server" id="dropdown_desktopVirtualisation" onchange="keyTechAdoption()">
<option class="lightgrey" value="N" data-min="0" data-max="1">N</option>
<option class="green" value="G" data-min="0" data-max="1">G</option>
<option class="orange" value="O" data-min="0" data-max="1">O</option>
<option class="yellow" value="A" data-min="0" data-max="1">A</option>
<option selected="selected" class="red" value="R" data-min="0" data-max="1">R</option>
<option class="purple" value="U" data-min="0" data-max="1">U</option>
</select>
<script type="text/javascript">
function initCalculation(inputField,select1,select2){
opt1 = select1.find('option:selected');
opt2 = select2.find('option:selected');
select1.change(function(){ //this can be done more generic
inputField.val(calculateValue(opt1,opt2).toFixed(0)+"%");
});
select2.change(function(){
inputField.val(calculateValue(opt1,opt2).toFixed(0)+"%");
});
}
function calculateOptions(el1,el2){
calculateValue(el1.data('min'),el1.data('max'),el1.data('min'),el1.data('max'));
}
function calculateValue(sV1,sV2,dV1,dV2){ //more abstract function name please :D
var keyTechTotal1 = sV1 + dV1;
var keyTechTotal2 = sV2 + dV2;
return (keyTechTotal1) / (keyTechTotal2) * 100;
}
</script>
相关文章:
- 计算用户从多个文件中选择的选项数量
- 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实时价格计算(从选项和复选框)
- 选择带开关箱的选项计算