当我点击全选时,我会检查并禁用所有复选框,当我取消选中全选时,所有复选框都会被取消选中并再次恢复正常。
然后我试着通过循环从数据库中检索数据做同样的事情,我可以选择全部,但当我取消选择'选择全部'它将全部取消,但禁用..我怎么能"不可能"它?
简单html版本的演示:http://jsfiddle.net/k6R7g/11/
不起作用的php版本:
<?php
echo '<input type="checkbox" name="category[]" class="category_all" value="0">All';
if ( $db_conn = connDB() ){
$sql_categories = "SELECT * FROM cat";
$rs = getRows($sql_categories, $db_conn);
foreach ($rs as $row) {
echo '<input type="checkbox" class="categories_list" name="category[]" value="'.$row['cat_id'].'">'.$row['cat_name'].'';
}
$db_conn = null;
}
?>
下拉列中的行回显正常,只需取消选择所有&#39;不工作。我做错了什么?
答案 0 :(得分:0)
请更改:
$(".categories_list").prop("checked", is_checked).attr("disabled", is_checked);
要:
$(".categories_list").prop("checked", is_checked).prop("disabled", is_checked);
答案 1 :(得分:0)
如你所说,noraml jquery它工作正常。希望这将在PHP中工作。像下面一样更新你的jquery块。
$(function() {
$("input[type=checkbox]").change(function() {
if ($(this).hasClass("category_all")) {
var is_checked = $(this).is(":checked");
if(is_checked){
$(".categories_list").prop("checked", is_checked).attr("disabled","true");
}
else
{
$(".categories_list").prop("checked", is_checked).removeAttr("disabled");
}
}
});
});
如果你选择disabled =“true”或者disabled =“false”会给出相同的输出。