无法使用JQuery访问我的复选框

时间:2017-11-30 11:34:59

标签: jquery

我遇到麻烦来获取类型chekcbox与jQuery的输入这里是我的HTML代码:

<th class="bill"  width="19%" scope="col">

      <input type="checkbox" name="sup'+i+'" class="bill" value="'+i+'"/>

</th> 

在这里你看到我的输入是在一个带有“bill”类的标签内,现在我想在我的复选框上捕获事件并简单地写一条消息。

$('.bill input[type=checkbox]').change(function() {
     console.log("it works");
})

但控制台中没有任何内容!我的事件监听器似乎有问题。

4 个答案:

答案 0 :(得分:2)

您可以使用click事件并确定事件触发时是否检查

$('input.bill[type=checkbox]').on('click', function() {
   if( $(this).is(':checked') )
      console.log("it works");
});

$('input.bill[type=checkbox]').on('click', function() {
   //optional logic to determine if checkbox was checked
   if( $(this).is(':checked') )
      console.log("it works");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<th class="bill" width="19%" scope="col">
  <input type="checkbox" name="sup'+i+'" class="bill" value="'+i+'" />
</th>

虽然您也可以像其他人指出的那样使用change事件。

$('input.bill[type=checkbox]').on('change', function() {
   if( $(this).is(':checked') )
      console.log("it works");
});

主要的一点是你的选择器不正确,你需要选择:

  1. 首先是特定的输入元素 - input
  2. 然后指定班级 - .bill
  3. 后跟与其关联的任何其他属性[type=checkbox]

答案 1 :(得分:1)

你的选择器错误。

$("input.bill[type=checkbox]").change(function() {
     console.log("it works");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<th class="bill"  width="19%" scope="col">

      <input type="checkbox" name="sup'+i+'" class="bill" value="'+i+'"/>

</th>

这也有效

$("input.bill:checkbox").change(function() {
     console.log("it works");
})

答案 2 :(得分:0)

这将有效

$(function() {
  $('input[type=checkbox]').change(function(){
    console.log("it works");
  });
});

答案 3 :(得分:0)

请将ID添加到复选框元素

<th class="bill"  width="19%" scope="col">

  <input type="checkbox" id="billSup" name="sup'+i+'" class="bill" value="'+i+'"/>

现在你将获得控制台

$('#billSup').on('change', function(){
   console.log("it works");
});