选择多个项目时如何更改价格
How do I change a price when multiple items are selected?
我正在做一个项目(学校),需要JavaScript编程方面的帮助。代码可以在这里看到:https://jsfiddle.net/zvov1jpr/3/
.HTML:
<script src="java.js"></script>
<div id="formular">
<div id="formulartekst">
<form>
<h2 class="formskrift">Order Hot Food</h2>
<p class="kroner">$39 / $29 when 3 or more checked</p>
<input name="product" value="39" type="checkbox" id="p1" onclick="totalIt()" /> Monday
<br>
<input name="product" value="39" type="checkbox" id="p2" onclick="totalIt()" /> Tuesday
<br>
<input name="product" value="39" type="checkbox" id="p3" onclick="totalIt()" /> Wednesday
<br>
<input name="product" value="39" type="checkbox" id="p4" onclick="totalIt()" /> Thursday
<br>
<input name="product" value="39" type="checkbox" id="p5" onclick="totalIt()" /> Friday
<label>
<br> Total
<input value="$0.00" readonly type="text" id="total" />
</label>
<input type="submit" value="Order">
</form>
</div>
</div>
JavaScript:
function totalIt() {
var input = document.getElementsByName("product");
var total = 0;
for (var i = 0; i < input.length; i++) {
if (input[i].checked) {
total += parseFloat(input[i].value);
}
}
document.getElementById("total").value = "$" + total.toFixed(2);
}
当我选中复选框时,它会自动将价格相加(由于某种原因,它在 JSFiddle 上没有,但它在我的网站上运行良好)。但是,我需要它,所以当我选中 3 个或更多框时,它必须将价格更改为 29 美元。支票而不是 39 美元。
有一个
小的JSFiddle问题,我已经评论过了。
除此之外,您还可以使用查询选择器来减少代码。
JSFiddle
function totalIt() {
var input = document.querySelectorAll("input[name='product']:checked")
document.getElementById("total").value = "$" +
(input.length * (input.length > 2 ? 29 : 39))
}
<script src="java.js"></script>
<div id="formular">
<div id="formulartekst">
<form>
<h2 class="formskrift">Order Hot Food</h2>
<p class="kroner">$39 / $29 when 3 or more checked</p>
<input name="product" value="39" type="checkbox" id="p1" onclick="totalIt()" />Monday
<br>
<input name="product" value="39" type="checkbox" id="p2" onclick="totalIt()" />Tuesday
<br>
<input name="product" value="39" type="checkbox" id="p3" onclick="totalIt()" />Wednesday
<br>
<input name="product" value="39" type="checkbox" id="p4" onclick="totalIt()" />Thursday
<br>
<input name="product" value="39" type="checkbox" id="p5" onclick="totalIt()" />Friday
<label>
<br>Total
<input value="$0.00" readonly type="text" id="total" />
</label>
<input type="submit" value="Order">
</form>
</div>
</div>
将函数更改为:
function totalIt(){
var input = document.getElementsByName("product");
var total = 0;
for (var i = 0; i < input.length; i++) {
if (input[i].checked) {
total+= 1;
}
}
if(total>=3){
document.getElementById("total").value = "$" + (total*29).toFixed(2);
}
else{
document.getElementById("total").value = "$" + (total*39).toFixed(2);
}
相关文章:
- 如何在使用loopback REST API时更改gulp-angular项目的端口号
- 使用圆中的数组更改背景颜色项目
- 如何在flash html5画布项目中动态更改文本颜色
- 如何在没有2个项目的情况下更改菜单项href
- 在位置更改时为阵列项目制作动画
- 更改localStorage和下拉列表中的项目值
- 单击按钮可更改多个跨度项目
- 用相同的键替换/更改项目
- JavaScript:如何在点击时更改项目的文本
- 在AngularJS中切换编辑状态并更改项目'单击另一个函数
- DevExtreme dxList 在鼠标悬停时更改项目模板
- amCharts:动态更改项目符号颜色
- 如何根据Marionette.CompositeView中的集合更改项目视图容器值
- 使用同位素过滤后,当项目的宽度小于3时,请更改项目的宽度
- 如何更改项目's的背景颜色使用jquery平滑
- 逐个更改项目的颜色
- 在Wordpress网站的下拉框中更改项目
- 如何通过单击更改项目的颜色
- 当滑块开始更改项目时,添加分页活动类
- 在添加了"current"类在菜单中的活动项目使用jQuery,如何css更改项目的容器