我的工作代码只在第一个输入值来自单选按钮后跟复选框时才能正常工作。但是,当其他方式时,单选按钮值会不断重置复选框的值,我不知道如何解决该问题。如何使用javascript自动计算单选按钮和复选框的值
这里是我的HTML代码:
<font face = "Algerian" ><h2>What Kind of Burger Would You Like to Order?</h2></font> <form name ="burgz"> Add-ons <br/>     <input type="checkbox" name="AO1" value="45" onclick="calculate1();">Bacon - 45     <input type="checkbox" name="AO2" value="40" onclick="calculate2();">Sausage - 40     <input type="checkbox" name="AO3" value="30" onclick="calculate3();">Ham - 30     <input type="checkbox" name="AO4" value="10" onclick="calculate4();">Tomatoes - 10     <input type="checkbox" name="AO5" value="3" onclick="calculate5();">Peppers - 3     <input type="checkbox" name="AO6" value="5" onclick="calculate6();">Olives - 5     <input type="checkbox" name="AO7" value="15" onclick="calculate7();">Extra Cheese - 15 <br/> Size<br/>     <input type="radio" name="size" value="10" onclick="calculateRadio();">Small - 10     <input type="radio" name="size" value="20" onclick="calculateRadio();">Medium - 20     <input type="radio" name="size" value="30" onclick="calculateRadio();">Large - 30 <input type="hidden" name="size"> <br/> Shape<br/>     <input type="radio" name="shape" value="15" onclick="calculateRadio();">Round - 15     <input type="radio" name="shape" value="10" onclick="calculateRadio();">Square - 10 <input type="hidden" name="shape"> <br/> <p>Total Price: <input type="text" name="total_price" value="0" readonly="readonly"></p> </form>
这里是我的Javascript代码:
<script type = "text/javascript">
///////////auto-total checkbox
function calculate1() {
var p1= eval(burgz.total_price.value)
if(document.burgz.AO1.checked==true){
p1 += eval(45);
}
else{
p1 -=eval(45);
}
burgz.total_price.value = eval(p1)
}
function calculate2() {
var p1= eval(burgz.total_price.value)
if(document.burgz.AO2.checked==true){
p1 += eval(40);
}
else{
p1 -=eval(40);
}
burgz.total_price.value = eval(p1)
}
function calculate3() {
var p1= eval(burgz.total_price.value)
if(document.burgz.AO3.checked==true){
p1 += eval(30);
}
else{
p1 -=eval(30);
}
burgz.total_price.value = eval(p1)
}
function calculate4() {
var p1= eval(burgz.total_price.value)
if(document.burgz.AO4.checked==true){
p1 += eval(10);
}
else{
p1 -=eval(10);
}
burgz.total_price.value = eval(p1)
}
function calculate5() {
var p1= eval(burgz.total_price.value)
if(document.burgz.AO5.checked==true){
p1 += eval(3);
}
else{
p1 -=eval(3);
}
burgz.total_price.value = eval(p1)
}
function calculate6() {
var p1= eval(burgz.total_price.value)
if(document.burgz.AO6.checked==true){
p1 += eval(5);
}
else{
p1 -=eval(5);
}
burgz.total_price.value = eval(p1)
}
function calculate7() {
var p1= eval(burgz.total_price.value)
if(document.burgz.AO7.checked==true){
p1 += eval(15);
}
else{
p1 -=eval(15);
}
burgz.total_price.value = eval(p1)
}
/////////radioButton computation
function calculateRadio() {
var s1, sh1;
s1 = burgz.size.value * 1;
sh1 = burgz.shape.value * 1;
total = s1 + sh1;
burgz.total_price.value = total;
}
</script>
哦,等待,单选按钮不是他们应该的功能。它们继续添加,因为函数calculate(input)只会扣除按钮未选中时的值,这意味着它不适用于单选按钮。有没有什么办法解决这一问题?喜欢把JavaScript代码放在另一个条件? – Raios
呵呵,似乎'onchange'不会触发取消选中的单选按钮。使用解决方法更新了代码。 –
你太棒了!谢谢!它现在像一种魅力。 – Raios