**我试图从头开始制作一个菜单,允许您计算服务的价格,价格等于第一个下拉列表“直到第二个”,就像应该添加之间的每个价格一样。我的代码:
https://www.codecademy.com/JoaquimTD/codebits/N5vsNA
var boosting_prices = new Array();
boosting_prices["b5"] = 5;
boosting_prices["b4"] = 5;
boosting_prices["b3"] = 5;
boosting_prices["b2"] = 7.5;
boosting_prices["b1"] = 10;
boosting_prices["s5"] = 10;
boosting_prices["s4"] = 10;
boosting_prices["s3"] = 10;
boosting_prices["s2"] = 12;
boosting_prices["s1"] = 12.5;
boosting_prices["g5"] = 12.5;
boosting_prices["g4"] = 12.5;
boosting_prices["g3"] = 12.5;
boosting_prices["g2"] = 15;
boosting_prices["g1"] = 17.5;
boosting_prices["p5"] = 20;
boosting_prices["p4"] = 20;
boosting_prices["p3"] = 20;
boosting_prices["p2"] = 22.5;
boosting_prices["p1"] = 25;
boosting_prices["d5"] = 30;
boosting_prices["d4"] = 40;
boosting_prices["d3"] = 55;
boosting_prices["d2"] = 80;
boosting_prices["d1"] = 160;
function getBoostPrice(){
var yourLeague = document.getElementById("yourLeague").selectedIndex;
var desiredLeague = document.getElementById("desiredLeague").selectedIndex;
for ( var i = boosting_price[yourLeague].length; i =< boosting_price[desiredLeague].length; i++) {
var totalPrice = 0;
totalPrice += boosting_price[i];
}
var totalCalc = document.getElementById('totalCalc');
totalCalc.innerHTML = totalPrice;
};
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='style.css'/>
<script src='script.js'></script>
</head>
<body>
<form action=" " id="boostingForm">
<div class="boostColumn" id="boostColumn">
<label>Your League</label>
<select id="yourLeague">
<option value="Bronze V" id="b5" value="5">Bronze V</option>
<option value="Bronze IV" id="b4" value="5">Bronze IV</option>
<option value="Bronze III" id="b3" value="5">Bronze III</option>
<option value="Bronze II" id="b2" value="7.5">Bronze II</option>
<option value="Bronze I" id="b1" value="10">Bronze I</option>
<option value="Silver V" id="s5" value="10">Silver V</option>
<option value="Silver IV" id="s4" value="10">Silver IV</option>
<option value="Silver III" id="s3" value="10">Silver III</option>
<option value="Silver II" id="s2" value="12">>Silver II</option>
<option value="Silver I" id="s1" value="12.5">Silver I</option>
<option value="Gold V" id="g5" value="12.5">Gold V</option>
<option value="Gold IV" id="g4" value="12.5">Gold IV</option>
<option value="Gold III" id="g3" value="12.5">Gold III</option>
<option value="Gold II" id="g2" value="15">Gold II</option>
<option value="Gold I" id="g1" value="17.5">Gold I</option>
<option value="Platinum V" id="p5" value="20">Platinum V</option>
<option value="Platinum IV" id="p4" value="20">Platinum IV</option>
<option value="Platinum III" id="p2" value="22.5">Platinum III</option>
<option value="Platinum II" id="p1" value="25">Platinum II</option>
<option value="Platinum I" id="p1" value="25">Platinum I</option>
<option value="Diamond V" id="d5" value="30">Diamond V</option>
<option value="Diamond IV" id="d4" value="40">Diamond IV</option>
<option value="Diamond III" id="d3" value="55">Diamond III</option>
<option value="Diamond II" id="d2" value="80">Diamond II</option>
<option value="Diamond I" id="d1" value="160">Diamond I</option>
</select>
</div>
<div class="boostColumn" id="boostColumn2">
<label>Desired League</label>
<select id="desiredLeague">
<option value="Bronze V" id="b5" value="5">Bronze V</option>
<option value="Bronze IV" id="b4" value="5">Bronze IV</option>
<option value="Bronze III" id="b3" value="5">Bronze III</option>
<option value="Bronze II" id="b2" value="7.5">Bronze II</option>
<option value="Bronze I" id="b1" value="10">Bronze I</option>
<option value="Silver V" id="s5" value="10">Silver V</option>
<option value="Silver IV" id="s4" value="10">Silver IV</option>
<option value="Silver III" id="s3" value="10">Silver III</option>
<option value="Silver II" id="s2" value="12">>Silver II</option>
<option value="Silver I" id="s1" value="12.5">Silver I</option>
<option value="Gold V" id="g5" value="12.5">Gold V</option>
<option value="Gold IV" id="g4" value="12.5">Gold IV</option>
<option value="Gold III" id="g3" value="12.5">Gold III</option>
<option value="Gold II" id="g2" value="15">Gold II</option>
<option value="Gold I" id="g1" value="17.5">Gold I</option>
<option value="Platinum V" id="p5" value="20">Platinum V</option>
<option value="Platinum IV" id="p4" value="20">Platinum IV</option>
<option value="Platinum III" id="p2" value="22.5">Platinum III</option>
<option value="Platinum II" id="p1" value="25">Platinum II</option>
<option value="Platinum I" id="p1" value="25">Platinum I</option>
<option value="Diamond V" id="d5" value="30">Diamond V</option>
<option value="Diamond IV" id="d4" value="40">Diamond IV</option>
<option value="Diamond III" id="d3" value="55">Diamond III</option>
<option value="Diamond II" id="d2" value="80">Diamond II</option>
<option value="Diamond I" id="d1" value="160">Diamond I</option>
</select>
</div>
<p id="totalCal">TOTAL</p>
<input type="submit" class="orderButton" id="submitOrder" value="Order Now!" onclick="getBoostingPrice();">
</body>
</html>
这个想法是根据客户想要的分区数量来计算总价。我尝试使用 JavaScript 数组来获取价格,并使用 id 来识别它们。就像我在:boosting_prices[yourLeague.id] 中所做的那样。
我可以使用 jQuery、JavaScript、PHP 和 HTML。**
最佳答案
您的代码中有很多错误,但我明白您的想法。
HTML 错误:
- 您为每个选项定义了多个值,这是错误的
- 您正在使用
<input type="submit">
而不是<input type="button">
仅当您要将数据发布到服务器时才使用提交 - 您正在调用未定义的 JavaScript 函数
getBoostingPrice
js 文件有getBoostPrice
这是工作代码:
function getBoostingPrice() {
var yourLeague = document.getElementById("yourLeague").selectedIndex;
var desiredLeague = document.getElementById("desiredLeague").selectedIndex;
var options = document.getElementById("yourLeague").options;
var totalPrice = 0;
for (var i = yourLeague; i <= desiredLeague; i++) {
totalPrice += parseInt(options[i].value);
}
var totalCalc = document.getElementById('totalCalc');
totalCalc.innerHTML = totalPrice.toString();
};
<!DOCTYPE html>
<html>
<head>
<script src='script.js'></script>
</head>
<body>
<form action=" " id="boostingForm">
<div class="boostColumn" id="boostColumn">
<label>Your League</label>
<select id="yourLeague">
<option id="b5" value="5">Bronze V</option>
<option id="b4" value="5">Bronze IV</option>
<option id="b3" value="5">Bronze III</option>
<option id="b2" value="7.5">Bronze II</option>
<option id="b1" value="10">Bronze I</option>
<option id="s5" value="10">Silver V</option>
<option id="s4" value="10">Silver IV</option>
<option id="s3" value="10">Silver III</option>
<option id="s2" value="12">Silver II</option>
<option id="s1" value="12.5">Silver I</option>
<option id="g5" value="12.5">Gold V</option>
<option id="g4" value="12.5">Gold IV</option>
<option id="g3" value="12.5">Gold III</option>
<option id="g2" value="15">Gold II</option>
<option id="g1" value="17.5">Gold I</option>
<option id="p5" value="20">Platinum V</option>
<option id="p4" value="20">Platinum IV</option>
<option id="p2" value="22.5">Platinum III</option>
<option id="p1" value="25">Platinum II</option>
<option id="p1" value="25">Platinum I</option>
<option id="d5" value="30">Diamond V</option>
<option id="d4" value="40">Diamond IV</option>
<option id="d3" value="55">Diamond III</option>
<option id="d2" value="80">Diamond II</option>
<option id="d1" value="160">Diamond I</option>
</select>
</div>
<div class="boostColumn" id="boostColumn2">
<label>Desired League</label>
<select id="desiredLeague">
<option id="b5" value="5">Bronze V</option>
<option id="b4" value="5">Bronze IV</option>
<option id="b3" value="5">Bronze III</option>
<option id="b2" value="7.5">Bronze II</option>
<option id="b1" value="10">Bronze I</option>
<option id="s5" value="10">Silver V</option>
<option id="s4" value="10">Silver IV</option>
<option id="s3" value="10">Silver III</option>
<option id="s2" value="12">Silver II</option>
<option id="s1" value="12.5">Silver I</option>
<option id="g5" value="12.5">Gold V</option>
<option id="g4" value="12.5">Gold IV</option>
<option id="g3" value="12.5">Gold III</option>
<option id="g2" value="15">Gold II</option>
<option id="g1" value="17.5">Gold I</option>
<option id="p5" value="20">Platinum V</option>
<option id="p4" value="20">Platinum IV</option>
<option id="p2" value="22.5">Platinum III</option>
<option id="p1" value="25">Platinum II</option>
<option id="p1" value="25">Platinum I</option>
<option id="d5" value="30">Diamond V</option>
<option id="d4" value="40">Diamond IV</option>
<option id="d3" value="55">Diamond III</option>
<option id="d2" value="80">Diamond II</option>
<option id="d1" value="160">Diamond I</option>
</select>
</div>
TOTAL: <span id="totalCalc"></span>
<br/>
<input type="button" class="orderButton" id="submitOrder" value="Order Now!" onclick="getBoostingPrice();">
</body>
</html>
关于JavaScript - 从 2 个下拉菜单中计算它们之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32448918/