我需要计算表单中已选中的复选框的数量'点击之后,提交表单之前。我有一个javascript函数,当单击一个框时会调用该函数,它会动态更改表单中的某些值。但是它返回了点击框时出现的计数和值。
正如我的代码现在,我有一个onClick事件处理程序,其中包含复选框和标签:
<div class="part" style="padding-right: 30px" onClick="runThis()">
<input id="checkbox_2" name="dog" type="checkbox" class='topdog' checked='checked' value="2" />
<label for="checkbox_2">Snoopy (Top Dog)</label>
</div>
...
function runThis() {
var dogsSelected = jQuery("input[name='dog']:checked");
var numSelected = dogsSelected.length;
alert("numSelected: " + numSelected);
}
我确信有一个简单的解决方案,或者我接近这个错误。
任何提示/建议都表示赞赏。
答案 0 :(得分:0)
是否有任何JavaScript错误?我发现,如果您从runThis()
中取出$(document).ready
函数,它就能正常运行。
您也可以考虑删除onClick=
属性以支持jQuery事件处理程序:
$("input[name='dog']").on('click',function(e) {
var dogsSelected = $("input[name='dog']:checked");
var numSelected = dogsSelected.length;
alert("numSelected: " + numSelected);
});
答案 1 :(得分:0)
您可以使用'更改'事件:
$("input[name='dog']").on('change', runThis);
function runThis() {
var dogsSelected = jQuery("input[name='dog']:checked");
var numSelected = dogsSelected.length;
alert("numSelected: " + numSelected);
}
答案 2 :(得分:0)
如果是这样,你应该尝试改变它以对鼠标做出反应,你应该得到不同的结果。
您可能在对dom 3进行更改之前激活了该事件。
编辑:
没关系它说问题中的onclick触发器。我不读不好。
尝试将其更改为:onmouseup,我想应该这样做:
<div class="part" style="padding-right: 30px" onmouseup="runThis()">
<input id="checkbox_2" name="dog" type="checkbox" class='topdog' checked='checked' value="2" />
<label for="checkbox_2">Snoopy (Top Dog)</label>