我一直在使用code from this question来创建非常相似的东西,我唯一想要改变的是计算以获得不同的总结果。
在该示例中,他们将第一个值乘以另一个值,然后回显结果。
第一个值乘以第二个值非常有效,但当我尝试使计算更高级时,它都会失败。
我希望能够使用所选值制作以下等式:
var total = ((firstSelect*secondSelect)-firstSelect*0,68)*300;
alert(total);
我也尝试了以下内容,这也失败了:
var oppa = firstSelect * rate;
var gagnam = secondSelect * 0.68;
var style = oppa - gagnam;
var total = style * 300;
alert(total);
目前我的HTML看起来像这样:
<p>Number of sales</p>
<select name="firstSelect" id="firstSelect" class="DoPricing">
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
<option value="35">35</option>
<option value="40">40</option>
<option value="45">45</option>
<option value="50">50</option>
<option value="55">55</option>
<option value="100">100</option>
<option value="150">150</option>
</select>
<p>Times rate</p>
<select name="secondSelect" id="secondSelect" class="DoPricing">
<option value="0.99">0.99</option>
<option value="1.15">1.15</option>
<option value="1.5">1.5</option>
<option value="2">2</option>
<option value="2.5">2.5</option>
<option value="3">3</option>
</select>
<br>
<br>
<input type="submit" name="submit" value="submit" id="submit">
和我的JS
function calc() {
var total,
nSales,
rate;
var nSales = document.getElementsByName("firstSelect")[0].value;
var rate = document.getElementsByName("secondSelect")[0].value;
var oppa = nSales * rate;
var gagnam = rate * 0.68;
var style = oppa - gagnam;
var total = style * 300;
alert(total);
}
window.onload = function () {
document.getElementById("submit").onclick = calc;
};
我将如何实现这一目标?
答案 0 :(得分:0)
你有calc()
函数中的onclick处理程序,你应该把它放在外面,所以它在windows.onload
上添加事件监听器
function calc() {
var total,
nSales,
rate;
var nSales = document.getElementsByName("firstSelect")[0].value;
var rate = document.getElementsByName("secondSelect")[0].value;
var oppa = nSales * rate;
var gagnam = nSales* 0.68; //changed to nSales
var style = oppa - gagnam;
var total = style * 300;
alert(total);
};
window.onload = function () {
document.getElementById("submit").onclick = calc;
}