JQuery Отключить опцию в выпадающем - PullRequest
7 голосов
/ 09 февраля 2011

Ребята, я использовал следующий код для отключения опции с помощью jQuery ( jquery-1.4.2.min ). Отключение происходит в Firefox, но не в IE.

<SELECT NAME="SCOPE" id="SCOPE">  
 <OPTION VALUE="G"> Global
 <OPTION VALUE="D"> Dynamic  
</SELECT>


 $("#SCOPE option[value='G']").attr("disabled","disabled");
 $("#SCOPE option[value='D']").attr("selected", "selected");

Ответы [ 2 ]

6 голосов
/ 09 февраля 2011

Я думаю, что могу ошибаться, но это может быть потому, что можно отключить опцию выбора, а не опции.Поскольку Firefox великолепен, а IE отстой, вы можете догадаться, почему :) у вас возникла эта проблема.Используйте css, чтобы выделить текст этого параметра серым цветом.

, затем в jquery сделайте что-то вроде этого.

$('#SCOPE').change(function(){
  if($('#SCOPE option[value="'+$(this).val()+'"]').attr('disabled') == 'disabled'){
    alert('Its disabled you cannot select this option');
  }
});

BTW.перепроверьте код, поскольку я не проверял это:)

0 голосов
/ 07 августа 2015

Мое мнение немного отличается от других ответов.

Цель состоит не в том, чтобы скрыть параметры, а в том, чтобы отключить их (чтобы интерфейс был согласованным).

Мой сценарий:

У меня есть несколько вариантов выбора в форме, и когда пользователь выбирает параметр в одном из вариантов выбора, другие варианты выбора должны отключить этот параметр, и наоборот. Пользователь ограничен в выборе той же опции, которая уже выбрана. Обычно мы отключаем эту опцию, но для IE 7, который ее не поддерживает. Пользователь также получает возможность добавлять новые выборки.

Решение:

под нагрузкой:

Если браузер IE7, то при заполнении выбора и отключении уже выбранных параметров на других выборках я добавляю настраиваемый атрибут для параметра («data-ie7-disabled»), а также меняю цвет отключенных параметров в «#cccccc» (это стандартный цвет для отключенных опций). Это делает пользовательский интерфейс одинаковым во всех браузерах.

При изменении:

Я сохраняю предыдущий параметр в локальной переменной (это сохраняется в фокусе).

Когда пользователь пытается изменить опцию

Пользователь выбирает совершенно новый параметр, который не выбран ни в одном другом раскрывающемся списке. Затем я перебираю другие варианты выбора, меняю цвет и добавляю пользовательский атрибут к этой выбранной опции для других вариантов выбора.

Когда пользователь выбирает параметр, который уже выбран (параметр, который выделен серым цветом). Сначала я проверяю, есть ли у опции этот пользовательский атрибут. Если это так, то> я просто возвращаю вариант к предыдущему с сообщением об ошибке, говорящим: «Этот параметр уже выбран или BLAH BLAH».

Когда пользователь изменяет свою существующую опцию на совершенно новую опцию, которая не выбрана ни в одном другом раскрывающемся списке. Я снова перебираю все остальные опции выбора и удаляю цвет, а также пользовательский атрибут.

Надеюсь, это поможет.

...