2017-10-09 83 views
1

我有一個要求,當選擇(Multiselect或Select2)下拉菜單時,如果所選擇的下拉值在db中具有「YES」值,則會彈出一個彈出窗口。我發佈了一個ajax調用,其中包含當前所選下拉列表的值。如何獲取Multiselect Dropdown或Select2 Dropdown的當前選定值?

正在獲取值作爲數組類型,我需要獲取由用戶選擇的特定選項的值。所以,我將檢查具有價值DB「YES」的價值,

的問題是: 我得到的值總是作爲第一選擇的項目。 。

我曾嘗試下列步驟操作:

VAR ID =

  • $( 「選擇2選項:選擇」)VAL();
  • $(this).val(); (this).find('option:first')。next()。val(); ()).last()。val();
+0

確實選擇了適合您的答案,以便有相同問題的其他人也可以受益 –

回答

0

這將獲得數組中選定的值,然後您可以傳遞給您的服務器端代碼來檢查數據庫。它可能更適合將相關數據傳遞到您的頁面並在那裏進行檢查,但不知道更多關於該情況,我會讓您知道。

下面的代碼...

$("#mySelect").on("change", function() { 
    console.log($(this).val()); // contains an array of ID 
}); 
select { 
    height: 100px; 
    width: 120px; 
} 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<select id="mySelect" multiple> 
    <option value="id1">option 1</option> 
    <option value="id2">option 2</option> 
    <option value="id3">option 3</option> 
    <option value="id4">option 4</option> 
    <option value="id5">option 5</option> 
</select> 
0

如果你點擊是assumin您應該使用提供的事件通過select2Event Docs

$('#mySelect2').on('select2:select', function (e) { 
    var data = e.params.data; 
    console.log(data); 
}); 

所以你有一個像

<option value="yes">Yes</option> 
<option value="no">No</option> 

您選擇下拉選項摹它會告訴你在console像下面

{ 
    "id": yes, 
    "text": "Yes", 
} 

,所以你可以像

$('#mySelect2').on('select2:select', function(e) { 
    var data = e.params.data; 
    if (data.id == 'yes') { 
    //send your ajax call 
    } else { 
    //do something else 
    } 
}); 

希望這有助於