12

目的是;
如果复选框被禁用,什么也不做。
如果启用并选中复选框,则设置按钮的样式。
这是我到目前为止所得到的;

 $(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()任何帮助将不胜感激。

4

3 回答 3

29

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

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


编辑:所以现在似乎.attr不推荐使用这种用法(请参阅http://api.jquery.com/attr/)首选方式是:

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

必须指出的是,这到今天仍然有效:

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

在这里试试:https ://jsfiddle.net/Robloche/phaqfrmj/

于 2012-10-10T14:25:15.387 回答
1

你也可以尝试使用这个:

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

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

于 2017-10-20T20:46:54.987 回答
0

对我来说,这就像禁用的魅力:

$("#myCheckBox").prop("disabled", true) 

启用:

$("#myCheckBox").prop("disabled", false)
于 2022-01-06T13:21:04.960 回答