Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Javascript 如何检测是否使用jquery单击了复选框_Javascript_Jquery - Fatal编程技术网

Javascript 如何检测是否使用jquery单击了复选框

Javascript 如何检测是否使用jquery单击了复选框,javascript,jquery,Javascript,Jquery,我有许多复选框,希望将的值添加到会话变量的数组中。问题是我不知道复选框的ID是什么。复选框将如下所示: <input type="checkbox" value="102" name="tags[]" id="tag102" class="checkbox" /> <input type="checkbox" value="103" name="tags[]" id="tag103" class="checkbox" /> <input type="checkbox

我有许多复选框,希望将的值添加到会话变量的数组中。问题是我不知道复选框的ID是什么。复选框将如下所示:

<input type="checkbox" value="102" name="tags[]" id="tag102" class="checkbox" />
<input type="checkbox" value="103" name="tags[]" id="tag103" class="checkbox" />
<input type="checkbox" value="104" name="tags[]" id="tag104" class="checkbox" />
<input type="checkbox" value="105" name="tags[]" id="tag105" class="checkbox" />
我做错了什么

脚本加载到文档就绪函数中。 在此之前加载最新的jquery&bootstrap3

更新

看起来有什么东西干扰了复选框:

// type ahead search
    var allclients_ajaxUrl = '[[~41]]';

    $('#searchusers').select2({  
      minimumInputLength: 2,
      ajax: {
        url: allclients_ajaxUrl,
        dataType: 'json',
        data: function (term, page) {
          return {
            q2: term
          };
        },
        results: function (data, page) {
          return { results: data };
        }
      }
    });
不确定这将如何或为什么会弄乱选择框。

在这里似乎很好:

$(document).ready(function(){
    $('input[type=checkbox]').change(function() {
        console.log("box was clicked "+$(this).attr('id'));    
    });    
});

我认为您没有将jQuery代码包装到document ready函数中。试试这个

$(document).ready(function () {
   $('input[type=checkbox]').change(function() {
      console.log($(this).attr('id') + "box was clicked");
      alert($(this).attr('id') + " box clicked...");
   });
});
使用
this
关键字将仅为您提供触发事件的元素。因此,您不必担心文档中的复选框数组

其次,您还可以触发复选框上的单击事件。如果要检测单击功能<代码>。单击()

或 您根本没有将jQuery链接到文档

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

这将包括文档的jQuery。

$(“输入:选中”)将返回当前选中的所有复选框和单选框。您可以对其进行迭代,然后将值添加到数组中。

这里是一个

$('input[type=checkbox] ').change(function() {
  if ($(this).is(':checked')) {
    alert("checked for : " + this.id);
  }
});
这将返回选中的复选框的
id

使用选中的选择器

例如

我个人使用点击事件作为复选框。它们似乎比改变更有效


此外,您还可以使用this.value和this.id(在函数“this”中指的是DOM元素)访问当前单击/更改的复选框的id或value属性。

脚本是包装在DOM就绪函数中还是在HTML末尾?这很奇怪,因为这两个(单击/更改)都被触发了:。您使用的是哪个版本的jquery?您可能需要将其包装到document中。ready函数是的,在加载[latest]jquery之后,我将其放入doc ready函数中。是的,但每次其中一个值发生变化时,您都必须在复选框上进行交互。不幸的是,这让我们又回到了如何附加
.change()
事件处理程序的问题上……按照我理解问题的方式,他似乎只需要获取值。我不确定他是否需要实时更新,而且有人已经发布了该解决方案,所以这可能会有所帮助。我复制并粘贴了您在那里的内容(doc ready中的内容)&我看到您的小提琴工作正常,我的不行!控制台中没有错误或任何东西。是否包含JS库?是-请参阅文章的更新。不知怎么的,其他东西正在干扰复选框。对不起-你的确实有效,我错过了它正在登录到控制台。。。但请看更新后的帖子。其他东西正在干扰选择框。
$('input[type=checkbox] ').change(function() {
  if ($(this).is(':checked')) {
    alert("checked for : " + this.id);
  }
});
$('input[type=checkbox]').click(function() {
    if ($(this).is(':checked')) {
        // do something when checked
    } else {
        // do something when unchecked
    }
});