2016-04-19 3 views
1

Мне удалось получить идентификатор выбранной опции для Chosen plugin. Вот jsfiddle Demo.JQuery Chosen получает идентификатор невыбранного значения в раскрывающемся списке

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

var SelectedIds = $(this).find('option:selected').map(function() { 
     if ($(this).attr('value') == params.selected) 
     return $(this).prop('id') 

    }).get(); 
    alert(SelectedIds); 
+0

Вы хотите получить идентификатор всех невыбранных вариантов после того, как любое количество выбранных опций правильно? – itzmukeshy7

+0

@ itzmukeshy7. В основном я хочу, чтобы идентификатор был только не выбранным вариантом. Например, если в раскрывающемся списке выбрано государство United United. Когда пользователь отменяет выбор из состояния United. Я хочу получить его идентификатор. То же самое происходит в любой другой стране. – Kamran

+0

Если пользователь не выбирает какие-либо выбранные параметры, вы хотите сделать некоторые функции здесь? – itzmukeshy7

ответ

4

Если параметр не выбран, то вы получите событие изменения, но params объект имеет deselected свойство, которое можно использовать так же, как вы используете selected.

Я сделал jsfiddle для вас, чтобы продемонстрировать: http://jsfiddle.net/1eut1c3d/

$("#chosen").chosen().on('change', function(evt, params) { 

    if (params.selected !== undefined) { 
    var selectedID = $(this).find('option:selected').map(function() { 
     if ($(this).attr('value') == params.selected) 
     return $(this).prop('id') 
    }).get(); 
    alert("Selected: " + selectedID); 
} 
if (params.deselected !== undefined) { 
    var deselectedID = $(this).find('option').not(':selected').map(function() { 
     if ($(this).attr('value') == params.deselected) 
     return $(this).prop('id') 
     }).get(); 
     alert("Deselected: " + deselectedID); 
    } 
}); 
+0

так '.not (': selected')' был ключевым элементом, которого я отсутствовал .. Спасибо – Kamran

+0

Добро пожаловать. Вам действительно не нужна эта часть, потому что вы можете просто сделать $ $ (this) .find ('option'). Map (...) 'и он найдет все параметры, но добавит' .not (': selected ') 'фильтрует его немного и заставляет его находить его быстрее, я думаю. –

+1

Для справок: '.not()' Документация: https://api.jquery.com/not/ –

Смежные вопросы