2016-04-19 168 views
1

我已設法獲得Chosen plugin的選定選項的ID。這裏是jsfiddle DemoJquery Chosen在下拉列表中獲取未選定值的Id

現在我不知道如何獲取未選定的選項的ID。我正在使用此代碼來獲取所選選項的ID。

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

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

你想後選擇任意數量的選擇權來獲得所有未選中的選項ID? – itzmukeshy7

+0

@ itzmukeshy7。基本上我只想要當前未選擇的選項的Id。例如,如果在下拉菜單中選擇了國家United States。當用戶取消選擇United State時。我想要得到它的Id。任何其他國家都一樣。 – 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

so'.not(':selected')'是我失蹤的關鍵因素..謝謝 – Kamran

+0

不客氣。你實際上並不需要這個部分,因爲你可以執行'$(this).find('option')。map(...)',它會找到所有的選項,但是添加'.not(':選擇')'將其過濾一下,讓它更快找到它,我想。 –

+1

供將來參考:'.not()'文檔:https://api.jquery.com/not/ –

相關問題