onclick后的Javascript双重警报
我在数组中有三个复选框。我处理用户的每次点击,并将复选框的值添加到数组中。例如,页面已加载,用户已单击a1,则值包含a1。如果用户单击a1和a3,则值包含a1、a3等 如果我点击复选框方块,它可以正常工作,但如果我点击复选框的文本,js会提醒两个版本的数组-以前的(我不需要这个!)和实际的。有人能帮忙吗 小提琴: 加成 给你:onclick后的Javascript双重警报,javascript,Javascript,我在数组中有三个复选框。我处理用户的每次点击,并将复选框的值添加到数组中。例如,页面已加载,用户已单击a1,则值包含a1。如果用户单击a1和a3,则值包含a1、a3等 如果我点击复选框方块,它可以正常工作,但如果我点击复选框的文本,js会提醒两个版本的数组-以前的(我不需要这个!)和实际的。有人能帮忙吗 小提琴: 加成 给你: $(".checkbox-button input").bind("click", function(event) { var values = $(
$(".checkbox-button input").bind("click", function(event) {
var values = $("input[name='tag[]']:checked").map(function() {
return this.value;
}).get();
alert(values)
})
您的问题是选择了错误的元素。您应该选择input
,而不是标签
更新版本如下:您的单击事件已绑定到标签。如果将其绑定到复选框,则双重警报将消失
$("input[type=checkbox]").bind("click", function(event) {
var values = $("input[name='tag[]']:checked").map(function () {
return this.value; }).get();
alert(values)
})
不要侦听父元素上的“单击”,而是侦听输入本身上的“更改”
$(".checkbox-button").bind("click", function(event) {
...
});
变成:
$(".checkbox-button input").bind("change", function(event) {
...
});
$(".checkbox-button").bind("click", function(event) {
...
});
$(".checkbox-button input").bind("change", function(event) {
...
});