添加文档加载时无法检测复选框更改

Can't detect checkbox change when adding on document load

本文关键字:检测 复选框 文档 加载 添加      更新时间:2023-09-26

我有点卡住了。我有一个javascript函数,在页面加载时,生成一个表单:

所有的复选框都有类' classes -select'。当这些复选框状态发生变化时,我试图运行另一个函数(我现在已经放置了console.log in),但它没有检测到任何变化。

$(function() {
  FormGenerate();
  $('.cls-select').change(console.log('Something changed...'));
  // ...
});

当页面第一次打开时,出现日志消息。但是,无论选中/未选中什么,都不会出现额外的日志条目。

谁能给我解释一下为什么会这样?我猜这是因为当浏览器加载。js文件时,页面上没有存在的带有cls-select的复选框,所以没有"那里"可以触发。

有没有办法绕过这个而不必重新开始?如有任何帮助/建议,不胜感激。

您的逻辑正在分配console.log('Something changed...')执行的结果作为事件处理程序,这不是您期望做的。

修改你的代码

$('.cls-select').change(function(){
    console.log('Something changed...');
});

我认为这是因为当你试图为复选框设置'onchange'事件时,它们还没有出现。所以你应该像这样使用jQuery 'on':

$( 'body' ).on( 'change', '.cls-select', function() {
  console.log('changes!');
});

你的代码有问题,你应该这样做

$(function() {
   FormGenerate();
   $('.cls-select').change(function(){
    console.log('Something changed...');
   });
});