Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
onclick后的Javascript双重警报_Javascript - Fatal编程技术网

onclick后的Javascript双重警报

onclick后的Javascript双重警报,javascript,Javascript,我在数组中有三个复选框。我处理用户的每次点击,并将复选框的值添加到数组中。例如,页面已加载,用户已单击a1,则值包含a1。如果用户单击a1和a3,则值包含a1、a3等 如果我点击复选框方块,它可以正常工作,但如果我点击复选框的文本,js会提醒两个版本的数组-以前的(我不需要这个!)和实际的。有人能帮忙吗 小提琴: 加成 给你: $(".checkbox-button input").bind("click", function(event) { var values = $(

我在数组中有三个复选框。我处理用户的每次点击,并将复选框的值添加到数组中。例如,页面已加载,用户已单击a1,则值包含a1。如果用户单击a1和a3,则值包含a1、a3等

如果我点击复选框方块,它可以正常工作,但如果我点击复选框的文本,js会提醒两个版本的数组-以前的(我不需要这个!)和实际的。有人能帮忙吗

小提琴:

加成 给你:

   $(".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) {
...
});