Подтвердить что ты не робот

JQuery Mobile, как проверить, отключена ли кнопка?

Я отключу эту кнопку на моей веб-странице jQuery Mobile:

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

и я могу включить его с помощью

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

Но как я могу проверить, отключена или включена кнопка?

Эта команда дает "undefined":

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

Некоторые идеи?

Изменить: я узнал, что $( "# deliveryNext" ). button ('disable') только швы, чтобы изменить стиль на кнопке, щелчок работает отлично после того, как мне нужно отключить кнопку, как это сделать. я попытался .attr('disabled', 'disabled'), но когда я затем тестирую .attr('disabled'), я получаю undefined...

Edit2: больше о моей "реальной" проблеме в Как отключить ссылку в jQuery Mobile?

4b9b3361

Ответ 1

попробуйте :is селектор

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

Ответ 2

Вместо этого используйте .prop:

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

Ответ 3

Try

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

Ответ 4

У меня была та же проблема, и я обнаружил, что это работает:

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

Если это дает вам undefined, вы также можете использовать условие if.

Когда вы оцениваете undefined, он вернет false.

Ответ 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);
        }
    });
});

Ответ 6

Try

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

Ответ 7

Чтобы узнать, какие параметры были установлены на кнопке jQuery UI, используйте:

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

Чтобы проверить, отключено ли вы, вы можете использовать:

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

К сожалению, если кнопка не была явно включена или отключена раньше, вышеупомянутый вызов просто вернет сам объект кнопки, поэтому вам нужно сначала проверить, содержит ли объект options свойство "disabled".

Итак, чтобы определить, отключена ли кнопка, вы можете сделать это следующим образом:

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

Ответ 8

$('# StartButton: disabled')..

Затем проверьте, не ли это undefined.

Ответ 9

Что для меня работало:

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

Но мне нравится, что tomwadley ответит намного больше.

Тем не менее, код is (': disabled') также не работает для меня, что должно быть лучшей версией. Не знаю, почему это не работает.: - (

Ответ 10

Вы можете использовать jQuery.is() вместе с :disabled:

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

Ответ 11

Столкнувшись с той же проблемой при попытке проверить, отключена ли кнопка. Я пробовал различные подходы, такие как btn.disabled, .is(':disabled'), .attr('disabled'), .prop('disabled'). Но никто не работает для меня.

Некоторые, например .disabled или .is(':disabled') возвращены undefined, а другие, такие как .attr('disabled'), вернули неправильный результат - false, когда кнопка была фактически отключена.

Но для меня работает только один метод : .is('[disabled]') (с квадратными скобками).

Итак, чтобы определить, отключена ли кнопка, выполните следующие действия:

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