首页 文章

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

提问于
浏览
1

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

我将值作为数组类型获取,我需要获取User选择的特定选项的值 . 这样我将检查DB中值为“YES”的值,

The problem is : 始终将值作为首选项 .

I Have tried these steps:

var id =

  • $(".select2 option:selected").val();

  • $(this).val();

  • $(this).find('option:first').next() . val();

  • $(this).last() . val();

3 回答

  • 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

    你应该使用 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
      }
    });
    

    希望这可以帮助

  • 0

    @Muhammad Omar Aslam的回答是正确的 .

    但是对于旧版本的select2,事件不会被触发 .

    然后你可以使用这样的东西:

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

相关问题