Ответ 1
попробуйте :is
селектор
$("#deliveryNext").is(":disabled")
Я отключу эту кнопку на моей веб-странице 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?
попробуйте :is
селектор
$("#deliveryNext").is(":disabled")
Вместо этого используйте .prop:
$('#deliveryNext').prop('disabled')
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>
У меня была та же проблема, и я обнаружил, что это работает:
if ($("#deliveryNext").attr('disabled')) {
// do sth if disabled
} else {
// do sth if enabled
}
Если это дает вам undefined, вы также можете использовать условие if
.
Когда вы оцениваете undefined
, он вернет false
.
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);
}
});
});
Try
$("#deliveryNext").is('[disabled]');
Чтобы узнать, какие параметры были установлены на кнопке jQuery UI, используйте:
$("#deliveryNext").button('option')
Чтобы проверить, отключено ли вы, вы можете использовать:
$("#deliveryNext").button('option', 'disabled')
К сожалению, если кнопка не была явно включена или отключена раньше, вышеупомянутый вызов просто вернет сам объект кнопки, поэтому вам нужно сначала проверить, содержит ли объект options свойство "disabled".
Итак, чтобы определить, отключена ли кнопка, вы можете сделать это следующим образом:
$("#deliveryNext").button('option').disabled != undefined && $("#deliveryNext").button('option', 'disabled')
$('# StartButton: disabled')..
Затем проверьте, не ли это undefined.
Что для меня работало:
$("#testButton").hasClass('ui-state-disabled')
Но мне нравится, что tomwadley ответит намного больше.
Тем не менее, код is (': disabled') также не работает для меня, что должно быть лучшей версией. Не знаю, почему это не работает.: - (
Вы можете использовать jQuery.is()
вместе с :disabled
:
$("#savematerial").is(":disabled")
Столкнувшись с той же проблемой при попытке проверить, отключена ли кнопка. Я пробовал различные подходы, такие как btn.disabled
, .is(':disabled')
, .attr('disabled')
, .prop('disabled')
. Но никто не работает для меня.
Некоторые, например .disabled
или .is(':disabled')
возвращены undefined
, а другие, такие как .attr('disabled')
, вернули неправильный результат - false
, когда кнопка была фактически отключена.
Но для меня работает только один метод : .is('[disabled]')
(с квадратными скобками).
Итак, чтобы определить, отключена ли кнопка, выполните следующие действия:
$("#myButton").is('[disabled]');