jQuery Mobile如何检查按钮是否被禁用?

时间:2011-06-22 08:45:50

标签: javascript jquery jquery-ui jquery-mobile

我在jQuery Mobile网页上禁用了这样的按钮:

$(document).ready(function() {
    $("#deliveryNext").button();
    $("#deliveryNext").button('disable');
});

我可以用

启用它
$("#deliveryNext").button('enable');

但是如何检查按钮是否已禁用或启用?

此命令提供“undefined”:

$("#deliveryNext").attr('disabled')

一些想法?

编辑:我发现$(“#deliveryNext”)。按钮('禁用')只接缝改变按钮上的样式,点击工作正常后我需要禁用按钮一些如何也..我试过.attr('禁用','禁用'),但是当我测试.attr('禁用')时,我得到了未定义......

Edit2:更多关于How to disable a link button in jQuery Mobile?

的“真实”问题

12 个答案:

答案 0 :(得分:115)

尝试:is选择器

$("#deliveryNext").is(":disabled")

答案 1 :(得分:23)

使用.prop代替:

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

答案 2 :(得分:9)

尝试

$("#deliveryNext").is(":disabled")

以下代码适用于我:

<script type="text/javascript">
    $(document).ready(function () {
        $("#testButton").button();
        $("#testButton").button('disable');
        alert($('#testButton').is(':disabled'));
    });
</script>
<p>
    <button id="testButton">Testing</button>
</p>

答案 3 :(得分:7)

我遇到了同样的问题,我发现这是有效的:

if ($("#deliveryNext").attr('disabled')) {
  // do sth if disabled
} else {
  // do sth if enabled 
}

如果这给你未定义,那么你也可以使用if条件。

评估undefined时,它会返回false

答案 4 :(得分:5)

http://jsfiddle.net/8gfYZ/11/ 点击这里..

$(function(){

    $('#check').click(function(){
        if( $('#myButton').prop('disabled') ) { 
            alert('disabled'); 
            $('#myButton').prop('disabled',false);
        } 
        else {
            alert('enabled');
            $('#myButton').prop('disabled',true);
        }
    });
});

答案 5 :(得分:5)

尝试检查按钮是否已禁用时遇到同样的问题。我尝试了各种方法,例如btn.disabled.is(':disabled').attr('disabled').prop('disabled')。但没有人适合我。

某些内容,例如.disabled.is(':disabled')返回undefined而其他类似.attr('disabled')返回了错误的结果 - false当按钮实际被禁用时。< / p>

但只有一种技术适合我 .is('[disabled]') 带方括号)。

因此,要确定按钮是否已禁用,请尝试以下操作:

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

答案 6 :(得分:4)

尝试

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

答案 7 :(得分:2)

要查看在 jQuery UI 按钮上设置了哪些选项,请使用:

$("#deliveryNext").button('option')

要检查它是否已禁用,您可以使用:

$("#deliveryNext").button('option', 'disabled')

不幸的是,如果之前未显式启用或禁用该按钮,则上述调用将仅返回按钮对象本身,因此您需要首先检查选项对象是否包含“已禁用”属性。 / p>

因此,要确定按钮是否已禁用,您可以这样做:

$("#deliveryNext").button('option').disabled != undefined && $("#deliveryNext").button('option', 'disabled')

答案 8 :(得分:0)

$('#StartButton:disabled')..

然后检查它是否未定义。

答案 9 :(得分:0)

对我有用的是:

$("#testButton").hasClass('ui-state-disabled')

但我更喜欢tomwadley的答案。

然而,is(':disabled')代码也不适用于我应该是最好的版本。不知道,为什么它不起作用。 : - (

答案 10 :(得分:0)

您可以使用jQuery.is()功能和:disabled选择器:

$("#savematerial").is(":disabled")

答案 11 :(得分:0)

试试下面的:-

$("#yourButtonId").is(":disabled")