假设我有一个表单的以下部分:
<td>
<p>
<input type="checkbox" name="faddon" onchange="iaddon()" value="89.00" /><br />
<input type="checkbox" name="faddon" onchange="iaddon()" value="29.00" /><br />
<input type="checkbox" name="faddon" onchange="iaddon()" value="49.00" /><br />
<input type="checkbox" name="faddon" onchange="iaddon()" value="39.00" />
</p>
</td>
<td>
<p>
<input type="checkbox" name="faddon" onchange="iaddon()" value="69.00" /><br />
<input type="checkbox" name="faddon" onchange="iaddon()" value="69.00" /><br />
<input type="checkbox" name="faddon" onchange="iaddon()" value="69.00" /><br />
<input type="checkbox" name="faddon" onchange="iaddon()" value="69.00" />
</p>
</td>
每次用户选择或取消选择复选框时,我都需要脚本重新计算变量插件,以计算选中的框的所有值的总和。这是我首先想到的代码,但它似乎对我不起作用:
function iaddon() {
addon=0;
av=document.getElementsByName("faddon");
for (e=0;e<av.length;e++) {
if (av[e].checked==true) {
addon+=av[e];
}
}
}
该脚本不断返回 NaN 作为插件的值。起初,我想知道 javascript 是否将值读取为字符串而不是整数,但是在 av[e] 周围添加 (x)*1 并没有解决这个问题。然后,我对 getElementsByName 进行了更多阅读,并了解到它可能不是一个典型的数组,而是一个节点列表。
我是 Javascript 新手,经过几个小时的谷歌搜索后无法弄清楚如何操作这个节点列表。任何帮助表示赞赏。我想将 8 个复选框保留在单独的表格单元格中,因此据我所知,使用 childNodes 之类的东西在这里并不完全有效。我还想在这一点上避开任何 jQuery...我仍在学习,我想确保我首先了解如何使用普通的旧 JavaScript 来完成它。谢谢!
您需要使用 value 属性并将其解析为数字。
例如:
function iaddon()
{
addon = 0;
for (e = 0; e < av.length; e++)
{
if (av[e].checked == true)
{
addon += parseInt(av[e].value, 10);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)