如何获取Multiselect Dropdown或Select2 Dropdown的当前选定值?

时间:2017-10-09 12:47:18

标签: jquery

如果所选下拉值在db中具有“YES”值,则需要在选择(Multiselect或Select2)下拉列表时显示弹出窗口。我发布了一个ajax调用,其ID为下拉列表的当前选定值。

我将值作为数组类型获取,我需要获取User选择的特定选项的值。因此,我将在DB中检查该值为“YES”,

问题是: 我总是将价值作为首选项目。

我尝试了以下步骤:

var id =

  • $(“。select2 option:selected”)。val();
  • $(本).VAL();
  • $(本).find( '选项:第一')next()的VAL();
  • $(本)。去年()VAL();

3 个答案:

答案 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>

答案 1 :(得分:0)

您应该使用select2 Event 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
  }
});

希望这会有所帮助

答案 2 :(得分:0)

@Muhammad Omar Aslam的答案是正确的。

但是对于早期版本的select2,不会触发该事件。

然后您可以使用类似这样的内容:

$('#mySelect2').on('change', function (e) {
  var data = e.currentTarget.value
  console.log(data);
});