当PHP选中复选框时,如何调用jQuery函数?

当PHP选中复选框时,如何调用jQuery函数?,php,jquery,checkbox,Php,Jquery,Checkbox,以下是我的PHP代码: <?php if (isset($mod['display']) && ($mod['display'] == "1")) { ?> <input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" checked="checked" onclick="checkbox_click(thi

以下是我的PHP代码:

<?php if (isset($mod['display']) && ($mod['display'] == "1")) { ?>
    <input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" checked="checked" onclick="checkbox_click(this);" />
<?php } else { ?>
    <input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" onclick="checkbox_click(this);" />
<?php } ?>

在上面的代码中,当
$mod['display']
为true时,复选框被选中,但它不会调用
checkbox\u click()
函数。我尝试了
onchange=
而不是
onclick=
,但似乎没有任何效果。我需要在字段中保留
onclick
onchange

尝试为此使用
prop
功能, 另外,您不需要调用函数,您可以使用
jquery.on()
函数创建它,如

$(function(){
   $(document).on('click','.display_checkbox',function(){
      if($(this).prop('checked')) {
              // do stuff....
      } else {
              // do stuff....
      }
   });
});
然后从
html复选框元素中删除
onclick=“checkbox_单击(此);”

已更新

要在
文档准备就绪时初始化它

$(function(){
   $('.display_checkbox').each(function(){
      if($(this).prop('checked')) {
              // do stuff....
      } else {
              // do stuff....
      }
   });
});

阅读和

如果您希望在页面加载后执行函数,并且每次更改复选框状态时都执行该函数,则应按以下方式执行:

<?php if (isset($mod['display']) && ($mod['display'] == "1")) { ?>
    <input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" checked="checked" onclick="checkbox_click(this);" />
<?php } else { ?>
    <input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" onclick="checkbox_click(this);" />
<?php } ?>
而且,我不会那样做。在这种情况下,应该使用onchange事件绑定

我认为最佳解决方案是:

<input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" <?php if (isset($mod['display']) && ($mod['display'] == "1")) { ?>checked="checked"<?php } ?> />
试试这个:

<?php if (isset($mod['display']) && ($mod['display'] == "1")) { ?>
    <input class="display_checkbox selectedcheckbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" checked="checked" onclick="checkbox_click(this);" />
<?php } else { ?>
    <input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" onclick="checkbox_click(this);" />
<?php } ?>

不,它仍然不符合我的目的。它和我原来的函数做的一样。当PHP选中复选框时,它不会调用函数。它只在我手动单击复选框时调用函数。No对PHP选择似乎仍然没有任何影响。这现在似乎对PHP选择有效,但现在在我手动单击复选框时失败-与我最初的代码完全相反。为了解决这个问题,如果我保留我的原始函数,并保留
onclick=…
,同时还包含您的上述代码,它工作得很好,但这将在页面中添加冗余代码。是的,我认为是这样。我已经用对我有用的东西更新了上面的答案。谢谢你的帮助!!
<input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" <?php if (isset($mod['display']) && ($mod['display'] == "1")) { ?>checked="checked"<?php } ?> />
$(function(){
   $('.display_checkbox').change(function(){
      if($(this).is(':checked')) {
          // do stuff....
      } else {
          // do stuff....
      }
   });

   $('.display_checkbox').each(function(){
      $(this).change();
   });
});
<?php if (isset($mod['display']) && ($mod['display'] == "1")) { ?>
    <input class="display_checkbox selectedcheckbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" checked="checked" onclick="checkbox_click(this);" />
<?php } else { ?>
    <input class="display_checkbox" type="checkbox" name="chk[<?php echo $row; ?>][display]" value="1" onclick="checkbox_click(this);" />
<?php } ?>
$(document).ready(function(){
   var obj = $(".selectedcheckbox");
   var found = obj.length;
   if(found == 1)
   {
     checkbox_click(obj);
   }
});

function checkbox_click(current) {
  if($(current).is(':checked')) {
      // do stuff....
  } else {
      // do stuff....
  }
}