web-dev-qa-db-ja.com

jQuery Mobileのボタンが無効になっているかどうかを確認する方法

JQuery Mobile Webページでこのようなボタンを無効にします。

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

そして、私はそれを有効にすることができます

$("#deliveryNext").button('enable');

しかし、ボタンが無効になっているか有効になっているかを確認するにはどうすればよいですか?

このコマンドは「未定義」を与えます:

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

いくつかのアイデア?

編集:$( "#deliveryNext")。button( 'disable')はボタンのスタイルを変更するためにのみ継ぎ目があり、クリックはうまく機能するので、何らかの方法でボタンを無効にする必要があります。 attr( 'disabled'、 'disabled')しかし、その後.attr( 'disabled')をテストすると、未定義になります...

Edit2: jQuery Mobileでリンクボタンを無効にする方法? での「本当の」問題の詳細

52
RickardP

試してください:isセレクター

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

代わりに.propを使用します。

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

試して

$("#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>
9
lancscoder

私は同じ問題を抱えていて、これが機能していることがわかりました:

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

これにより未定義になる場合は、if条件も使用できます。

undefinedを評価すると、falseが返されます。

7
Mina Gabriel

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
jackkorbin

試して

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

ボタンが無効になっているかどうかを確認しようとすると、同じ問題に直面しました。 _btn.disabled_、.is(':disabled').attr('disabled').prop('disabled')など、さまざまなアプローチを試しました。しかし、私のために働く人はいません。

たとえば、_.disabled_または.is(':disabled')undefinedを返し、.attr('disabled')などが間違った結果を返しました-ボタンが実際にあったときのfalse無効。

しかし、唯一のテクニック私のために働く.is('[disabled]')with角括弧)。

ボタンが無効になっているかどうかを判断するには、これを試してください:

_$("#myButton").is('[disabled]');
_
5
ross.zhalivtsiv

jQuery UIボタンで設定されているオプションを確認するには、次を使用します。

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

無効になっているかどうかを確認するには、次を使用できます。

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

残念ながら、ボタンが以前に明示的に有効または無効にされていない場合、上記の呼び出しはボタンオブジェクト自体を返すだけなので、オプションオブジェクトに「無効」プロパティが含まれているかどうかを最初に確認する必要があります。

したがって、ボタンが無効になっているかどうかを判断するには、次のようにします。

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

私のために働いたのはこれでした:

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

しかし、私はトムワドリーの答えがもっと好きです。

それにもかかわらず、is( ':disabled')コードは私にとってはうまくいきません。なぜわからないのかわかりません。 :-(

0
John Archer

jQuery.is() functionと :disabled セレクター:

$("#savematerial").is(":disabled")
0
Siva Ragu

$( '#StartButton:disabled')..

次に、未定義かどうかを確認します。

0
Michael Wright