Получить значение отключенной опции в Select Multiple Jquery

у меня есть несколько вариантов выбора на моей странице, и у меня есть опция отключена, чтобы пользователь не мог отменить их выбор, но я не могу понять, как получить значение отключенной опции.

мой код до сих пор

// Get selected positions
var $selPositions = $('select#empPositions').val();

HTML-код

<select name="empPositions[]" id="empPositions" style="width: 370px;" multiple="" data-placeholder="Choose a Position" required="">
<option></option>
<optgroup label="Admin">
    <option disabled="">There are no positions assigned to Admin</option>
</optgroup>
<optgroup label="Information Technology">
    <option value="1" selected="" disabled="">IT Developer</option>
    <option value="2">IT Geeks</option>
</optgroup>

обратите внимание, что отключенный параметр изменяется на основе других переменных, но он дает мне только выбранные значения без отключения. Может ли кто-нибудь сообщить мне, можно ли это сделать и как?

Я использую выбрал, поэтому disabled опции

Скрипка: http://jsfiddle.net/c5kn5w75/

Я нашел в этой статье на сайте ошибки JQuery, который сказал

давняя логика .val () гарантирует, что мы не возвращаем отключенные параметры в select-multiple. Изменение просто применяет то же самое поведение для select-one теперь для согласованности. Вы можете получить значение параметра с помощью $("выбирать.)"prop ("selectedIndex"), если вам это нужно.

но это не сработало для меня.

2 ответов


демо

var opt = $('#empPositions option:selected').map(function(i,v) {
    return this.value;
}).get(); // result is array
alert( opt );

пожалуйста, имейте в виду, что при отправке формы опции не представлены, даже если они выбраны. Если вы отправляете через AJAX, вы можете захватить значения, как показано выше.

и $('option[disabled]').val() вернет значение первого отключенного option элемент и $('option[disabled]:selected').val() значение первой выбранной отключенной опции.

если всегда есть только один элемент вы можете нацелить его, используя:

 var opt = $('#empPositions option[disabled]:selected').val(); // result is string

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

$('option[disabled]').val();