首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery select/unselect适用于简单的html,但不适用于php循环

Jquery select/unselect适用于简单的html,但不适用于php循环
EN

Stack Overflow用户
提问于 2014-06-02 13:55:33
回答 2查看 82关注 0票数 0

当我单击select all时,我会选中并禁用所有的复选框,而当我取消选中select all时,所有的复选框都会变为未选中并再次正常。

然后,我尝试用循环从数据库中检索数据时做了完全相同的事情,我可以选择全部,但当我取消选择‘全选’时,它将全部取消选中但被禁用。我怎样才能“取消禁用”它?

简单html版本的演示:http://jsfiddle.net/k6R7g/11/

不起作用的php版本:

代码语言:javascript
复制
<?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;
}                                       
?>

下拉列表中的行显示得很好,只是“全选”的取消选择部分不起作用。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2014-06-02 14:22:40

请更改:

代码语言:javascript
复制
$(".categories_list").prop("checked", is_checked).attr("disabled",  is_checked);

至:

代码语言:javascript
复制
$(".categories_list").prop("checked", is_checked).prop("disabled",  is_checked);
票数 0
EN

Stack Overflow用户

发布于 2014-06-02 14:24:07

正如你所提到的,noraml jquery它工作得很好。希望这能在php中工作。像下面这样更新你的jquery代码块。

代码语言:javascript
复制
$(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”将会给出相同的输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23988112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档