Как проверить, отключено ли раскрывающееся меню?
Использование jquery, как просто проверить, только ли оно доступно для чтения?
вот что я пытаюсь.
$("#item").keydown(function (event) {
//alert(event.keyCode);
if (event.keyCode == 13) {
$("#ok").click();
if ($('#dropLength').prop("disabled") == false) {
$("#dropLength").focus();
return;
}
if ($('#dropUnit').prop("disabled") == false) {
$("#dropUnit").focus();
return;
}
$("#qty").focus();
return ;
}
});
Выпадающие меню устанавливаются с использованием только для чтения с помощью jquery:
if ($('#dropLength').find('option').length <= 1) {
$('#dropLength').attr("disabled", "disabled");
}
if ($('#dropUnit').find('option').length <= 1) {
$('#dropUnit').attr("disabled", "disabled");
}
Ответы
Ответ 1
.attr
решение до 1.6 заключалось в использовании .attr
и обработке возвращаемого значения как bool
. Основная проблема заключается в том, что возвращаемый тип .attr
изменился на string
, и поэтому сравнение с == true
нарушено (см. Http://jsfiddle.net/2vene/1/ (и переключите версию jquery)).
С 1.6 был введен .prop
, который возвращает bool
.
Тем не менее, я предлагаю использовать .is()
, так как возвращаемый тип по сути является bool
, например:
$('#dropUnit').is(':disabled');
$('#dropUnit').is(':enabled');
Более того, .is()
намного более естественен (в терминах "естественного языка") и добавляет больше условий, чем простое сравнение атрибутов (например: .is(':last')
, .is(':visible')
.. смотрите документацию на селекторы).
Ответ 2
Попробуйте выполнить или проверьте демо отключено и readonly
$('#dropUnit').is(':disabled') //Returns bool
$('#dropUnit').attr('readonly') == "readonly" //If Condition
Вы можете проверить jQuery часто задаваемые вопросы.
Ответ 3
Есть два варианта:
Первая
Вы также можете использовать как is()
$('#dropDownId').is(':disabled');
Второй
Используя == true
, проверив, соответствует ли значение атрибута disabled
. attr()
$('#dropDownId').attr('disabled');
все, что вы чувствуете, подходит лучше, вы можете использовать:)
Ура!
Ответ 4
Это $(#dropUnit).attr("disabled") == false