检查复选框已禁用(Jquery)

问题描述 投票:10回答:2

目的是; 如果禁用复选框,则不执行任何操作 如果启用并选中了复选框,请设置按钮的样式。 这是我到目前为止所得到的;

 $(document).ready(function (e) {


        $(".checkbox").live("click", function () {

            if ($(this).hasAttribute('disabled')) {
                return false;
            }
            var isAnyChecked;

            $("input[type=checkbox]").each(function () {
                var checkedValue = $(this).attr("checked");
                if (checkedValue == "checked") {
                    isAnyChecked = true;
                }


            });

            if (isAnyChecked) {
                $("#<%= btnConfirm.ClientID %>").css("display", "block");

            } else {
                $("#<%= btnConfirm.ClientID %>").css("display", "none");

            }


        });  });

我尝试过.is(':disabled').hasAttr().prop().attr()。任何帮助将不胜感激。

javascript checkbox client-side
2个回答
24
投票

你必须检查disabled属性是否为真:.attr('disabled')

或者,更好的是,使用.is(':disabled') .---


编辑:所以似乎.attr现在已被弃用(参见http://api.jquery.com/attr/)首选方式是:

$('#myCheckbox').prop('disabled')

必须指出的是,这仍然适用于今天:

$('#myCheckbox').is(':disabled')

试试吧:https://jsfiddle.net/Robloche/phaqfrmj/


1
投票

你也可以试试这个:

$("#myCheckBox").is('[disabled]');

对我来说,确定一个元素是否被禁用,而其他解决方案(.disabled.is(':disabled').attr('disabled').prop('disabled'))没有。

© www.soinside.com 2019 - 2024. All rights reserved.