2014-09-09 3 views
6

У меня есть множественный выбор на моей странице, и у меня отключена опция, так что пользователь не может отменить выбор, но я не могу понять, как получить значение отключенный вариант.Получить значение параметра «Отключено» в «Выбрать несколько 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> 

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

Я использую Chosen, следовательно, почему disabled вариант

Fiddle:http://jsfiddle.net/c5kn5w75/

я нашел this article на Буг сайта JQuery, который сказал

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

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

+0

это поможет, если вы вывесили ваш HTML слишком –

+0

Я не вижу проблемы .. увидеть этот jsfiddle, который моя интерпретация проблемы: http://jsfiddle.net/t60w5ztx/ –

+0

@Skram это «несколько», это то, что проблема. Он работает, если он стандартный – dpDesignz

ответ

8

DEMO

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() значение первой выбранной отключенной опции.

Если всегда есть только один вариант selected disabled элемент можно ориентировать его с помощью:

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

Спасибо! У меня есть скрытый ввод для обработки этого элемента :) – dpDesignz

+0

Cool :) Рад, что я мог бы помочь. – PeterKA

0

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

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

Nope попробовал это и 'option: disabled 'и оба возвращались undefined. :/ – dpDesignz

+0

Похоже, здесь есть синтаксическая ошибка? – bencripps

+0

@ bencripps Как так? – dpDesignz