2017-10-09 48 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 
    } 
}); 

希望这有助于