使用javascript选中一次计算总计复选框
我正在尝试为我的网站创建一个javascript代码,以便在选中复选框后进行计算。每次我选中一个复选框,它都应该计算项目的总价格 这是我的html代码:使用javascript选中一次计算总计复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我正在尝试为我的网站创建一个javascript代码,以便在选中复选框后进行计算。每次我选中一个复选框,它都应该计算项目的总价格 这是我的html代码: <form id="orderForm" action="#" method="get"> <section id="selectBook"> <h2>Select books</h2> <?php include_once('data
<form id="orderForm" action="#" method="get">
<section id="selectBook">
<h2>Select books</h2>
<?php
include_once('database_conn.php');
$sqlBooks = 'SELECT bookISBN, bookTitle, bookYear, catDesc, bookPrice FROM nbc_book b inner join nbc_category c on b.catID = c.catID WHERE 1 order by bookTitle';
$rsBooks = mysqli_query($conn, $sqlBooks);
while ($book = mysqli_fetch_assoc($rsBooks)) {
echo "\t<div class='item'>
<span class='bookTitle'>{$book['bookTitle']}</span>
<span class='bookYear'>{$book['bookYear']}</span>
<span class='catDesc'>{$book['catDesc']}</span>
<span class='bookPrice'>{$book['bookPrice']}</span>
<span class='chosen'><input type='checkbox' name='book[]' value='{$book['bookISBN']}' title='{$book['bookPrice']}' /></span>
</div>\n";
}
?>
</section>
<section id="collection">
<h2>Collection method</h2>
<p>Please select whether you want your chosen book(s) to be delivered to your home address (a charge applies for this) or whether you want to collect them yourself.</p>
<p>
Home address - £3.99 <input type="radio" name="deliveryType" value="home" title="3.99" checked = "checked" /> |
Collect from warehouse - no charge <input type="radio" name="deliveryType" value="trade" title="0" />
</p>
</section>
<section id="checkCost">
<h2>Total cost</h2>
Total <input type="text" name="total" id="total" size="10" readonly="readonly" />
</section>
选书
在getTotal()
中,在此处设置值之前返回:
返回总数代码>
document.getElementById(“total”).innerHTML=total代码>
使用值而不是innerhtml
设置输入
document.getElementById(“总计”).setAttribute(“值”,总计)代码>
我不得不将checked改为parseFloat(chkbox[I-1].title)
,以匹配if语句
上面的示例使用的是产品,第一个定价为1,第二个定价为2。实际问题是什么?理想行为与实际行为?@geert3一旦我选中复选框,我就无法得到这些书的总价。我看到在一个地方你使用I-1
作为数组中的索引,下一行你使用I
@geert3实际上它应该解析值而不是标题,我将再次编辑,实际上我认为title
是可以的,因为PHP代码说title='{$book['bookPrice']}'
。我认为指数就是问题所在。建议您使用“开发者工具”单步浏览javascript(大多数浏览器使用F12或firefox的FireBug插件),非常感谢,它对我非常有用:D非常感谢
var item = document.getElementsByClassName("item");
var chkbox = document.getElementsByTagName("input");
for(var i = 0; i < chkbox.length; i++){
chkbox[i].onchange = function(){
//Recalculate total
getTotal();
}
}
function getTotal(){
var total = 0.0;
for(var i = 1; i <= chkbox.length; i++){
//If the checkbox is checked, add it to the total
if(chkbox[i-1].checked){
total = total + parseFloat(chkbox[i].value);
}
}
return total;
document.getElementById("total").innerHTML = total;
}