$('input:checkbox')没有回报.change(function(){?

时间:2017-01-04 18:31:56

标签: javascript jquery checkbox input

我正在测试我在这里提供的第二个解决方案,用于检查和记录已经检查过的每个复选框。第一个解决方案就像一个魅力,但第二个更有效的解决方案甚至没有运行。

for (x in aL.results) {
  aLIds.push(aL.results[x].listing_id);
  aLTitles.push(aL.results[x].title);
  aLQuantities.push(aL.results[x].quantity);
  aLDescs.push(aL.results[x].description);
  aLTaxPaths.push(aL.results[x].Tax_path);
  aLTaxIds.push(aL.results[x].Tax_id);
  aLTags.push(aL.results[x].tags);
  aLUrls.push(aL.results[x].url);
  aLPrices.push(aL.results[x].price);
  aLViews.push(aL.results[x].views);
  aLHearts.push(aL.results[x].num_favorers);

  $('#tblListings').append(
    '<tr>' + '<td><input type="checkbox" name="updateListings[]" value=' + x + ' ></td>' + '<td>' + aLQuantities[x] + '</td>' + '<td>' + aLTitles[x] + '</td>' + '<td>' + aLPrices[x] + '</td>' + '<td>' + aLViews[x] + '</td>' + '<td>' + aLHearts[x] + '</td>' + '</tr>'
  );
}

$('input:checkbox').change(function() {
    alert('ah');
    var uLIndex = $('input:checkbox:checked').map(function() {
        return this.value;
    }).get();
    console.log(uLIndex);
});

1 个答案:

答案 0 :(得分:0)

对于动态创建元素,我们无法直接绑定事件执行类似这样的操作或 live 函数,并且此函数在1.9版本中被删除,因此请确保您使用的是什么版本的jquery或您可以通过jquery官方网站找到许多方法

$('body').on("change","input:checkbox",function() {
    alert('ah');
  var uLIndex = $('input:checkbox:checked').map(function() {
    return this.value;
  }).get();
  console.log(uLIndex);
});

<强>更新

将复选框添加到复选框检查

$('#tblListings').append(
    '<tr>' + '<td><input class="check" type="checkbox" name="updateListings[]" value=' + x + ' ></td>' + '<td>' + aLQuantities[x] + '</td>' + '<td>' + aLTitles[x] + '</td>' + '<td>' + aLPrices[x] + '</td>' + '<td>' + aLViews[x] + '</td>' + '<td>' + aLHearts[x] + '</td>' + '</tr>'
  );

然后将所有复选框上的事件绑定到类名检查,如下所示。

$('body').on("change",".check",function() {
    alert('ah');
  var uLIndex = $('input:checkbox:checked').map(function() {
    return this.value;
  }).get();
  console.log(uLIndex);
});