当PHP选中复选框时,如何调用jQuery函数?
以下是我的PHP代码:当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 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....
}
}