Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用4个选择选项计算价格_Javascript_Html - Fatal编程技术网

Javascript 使用4个选择选项计算价格

Javascript 使用4个选择选项计算价格,javascript,html,Javascript,Html,我不知道如何计算4个选择选项的价格 正如您在HTML代码中看到的,一个等级有5个划分,总共有5个等级 青铜5到青铜1的输入指南将=($0+$2+$4+$4+$8) 铜牌组别5=0元 铜牌组别4=2元 铜牌组别3=4元 铜牌组2=6美元 铜牌1组=8美元 白银同样也会以不同的价格,等等来换取钻石 另一个例子是: 这显示了铜牌第5组到银牌第3组的顺序。它遍历所选排名上每个部门的所有存储价格,并将其相加,直到到达最后一个输入 我希望这些信息足以帮助你理解我的意思 无功电流分配, 理想的分组; 函数c

我不知道如何计算4个选择选项的价格

正如您在HTML代码中看到的,一个等级有5个划分,总共有5个等级

青铜5到青铜1的输入指南将=($0+$2+$4+$4+$8)

铜牌组别5=0元

铜牌组别4=2元

铜牌组别3=4元

铜牌组2=6美元

铜牌1组=8美元

白银同样也会以不同的价格,等等来换取钻石

另一个例子是:

这显示了铜牌第5组到银牌第3组的顺序。它遍历所选排名上每个部门的所有存储价格,并将其相加,直到到达最后一个输入

我希望这些信息足以帮助你理解我的意思

无功电流分配,
理想的分组;
函数current1(){
var Amt=document.priceCalc.CRANK1;
var数量=document.priceCalc.CRANK2;
返回parseInt(数量值)*parseFloat(金额值);
}
函数desiredd(){
var Amt=document.priceCalc.DRANK1;
变量数量=document.priceCalc.DRANK2;
退货价格=parseInt(数量值)*parseFloat(金额值);
}
函数总数(){
if(isNaN(current1()){
当前分区=0;
}否则{
电流除法=电流1();
}
if(isNaN(desiredd()){
期望除法=0;
}否则{
所需除法=所需除法();
}
var totalPrice=(当前分割+期望分割);
document.getElementById('prices')。value=totalPrice;
document.getElementById(“prices”).readOnly=true;
}
document.getElementById('divboost')。addEventListener('change',function(){
总数();
})


现职 青铜色 银币 黄金 铂金 钻石

电流除法 第5分部 第4分部 第3分部 第2分部 第一分部



期望等级 青铜色 银币 黄金 铂金 迪亚蒙德

期望除数 第5分部 第4分部 第3分部 第2分部 第一分部



正如您在这里看到的:,使用纯JS,您不能一次将
更改
侦听器添加到整个表单中。您需要为其中要更改的每个元素添加一个侦听器。下面的代码显示了如何操作。

此外,我不知道每种“颜色”(青铜色、银色等)的值,所以我发明了这些值,将每种值增加2。。。使用的数学是: “颜色”值是乘数,“除法”值是实际值。所以

青铜(乘数2)*第4除法(值2)等于=6美元

您应该根据需要调整值和数字,但我认为这里的逻辑将对您有所帮助。
可能您需要的不仅仅是为选项设置
value
,最好将值存储在对象或数组中,然后从中获取值,这将有助于更复杂的数学需求。

请参阅下面的代码,单击以显示代码段,并告诉我这是否对您有帮助

无功电流分配,
理想的分组;
函数current1(){
var Amt=document.priceCalc.CRANK1;
var数量=document.priceCalc.CRANK2;
返回parseInt(数量值)*parseFloat(金额值);
}
函数desiredd(){
var Amt=document.priceCalc.DRANK1;
变量数量=document.priceCalc.DRANK2;
退货价格=parseInt(数量值)*parseFloat(金额值);
}
函数总数(){
if(isNaN(current1()){
当前分区=0;
}否则{
电流除法=电流1();
}
if(isNaN(desiredd()){
期望除法=0;
}否则{
所需除法=所需除法();
}
var totalPrice=(当前分割+期望分割);
document.getElementById('prices')。value=totalPrice;
document.getElementById(“prices”).readOnly=true;
}
var changers=document.getElementsByClassName('changer');
对于(变量i=0;i


现职 青铜色 银币 黄金 铂金 钻石

电流除法 第5分部 第4分部 第3分部 第2分部 第一分部



期望等级 青铜色 银币 黄金 铂金 钻石

期望除数 第5分部 第4分部 第3分部 第2分部 第一分部

$


我知道你需要遵循固定价格(这不是一个简单的数学公式)

因此,我建议您在代码中使用数组来保存所有价格的值。您需要更新javascript数组以表示正确的值

按等级/等级划分价格毫无意义。您可以将两个列表合并为一个,而不是两个单独的列表:
B5、B4、B3、B2、B1、S5、S4、
(其中
B=brown
S=Silver

所以你有一个单一的价格清单。您需要做的是获取数组中的什么索引是当前的秩+除法,以及数组中的什么索引是所需的秩+除法

当您拥有这两个值时,您只需要将当前索引中的所有值相加到所需索引,从而获得累积值

此外,我建议如果用户选择的排名/部门少于当前的排名/部门,则警告用户,否则价格将为负(产生令人惊讶的经济影响)

我加了前3个等级,你可以做剩下的2个。从用户体验的角度来看,我真诚地建议使用单个
select
,因为没有太多的值,这将意味着用户的点击次数减少。如果你愿意