当我单击select all时,我会选中并禁用所有的复选框,而当我取消选中select all时,所有的复选框都会变为未选中并再次正常。
然后,我尝试用循环从数据库中检索数据时做了完全相同的事情,我可以选择全部,但当我取消选择‘全选’时,它将全部取消选中但被禁用。我怎样才能“取消禁用”它?
简单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;
}
?>下拉列表中的行显示得很好,只是“全选”的取消选择部分不起作用。我做错了什么?
发布于 2014-06-02 14:22:40
请更改:
$(".categories_list").prop("checked", is_checked).attr("disabled", is_checked);至:
$(".categories_list").prop("checked", is_checked).prop("disabled", is_checked);发布于 2014-06-02 14:24:07
正如你所提到的,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");
}
}
});
});因为在Normal复选框中,如果你给disabled="true“或disabled="false”将会给出相同的输出。
https://stackoverflow.com/questions/23988112
复制相似问题