javascript - 处理选择上的下拉菜单

标签 javascript jquery selectize.js

我有一个包含 100 个项目的选择控件。

我希望控件仅在键入时显示下拉列表。

  1. 当它获得焦点时,下拉菜单应该关闭
    • openOnFocus:假
  2. 选择某个项目后,下拉列表应关闭
    • closeAfterSelect:true
  3. 使用选项卡选择某个项目时,下拉列表应关闭
  4. 当使用退格键删除项目时,下拉列表应关闭
  5. 当使用 x(删除插件)删除项目时,下拉列表应关闭

如何实现 3、4 和 5?

我的控制设置如下所示:

globalSelectizedEditor = $('#tagsEditor').selectize({
        plugins: ['remove_button'],
        valueField: 'Id',
        labelField: 'Name',
        searchField: 'Name',
        options: [],
        create: true,
        openOnFocus: false,
        persist: false,
        closeAfterSelect: true,
        render: {
            ...
        },
        load: function (query, callback) {
            ...
        },
        onItemAdd: function(value) {

            ...

            globalSelectizedEditor[0].selectize.close();

        },
        onItemRemove: function () {

            globalSelectizedEditor[0].selectize.close();

        }
    });

最佳答案

也许这可以帮助你。对我来说效果很好。

$('#tagsEditor').each(function() {

  var selectize = $(this).selectize({
    plugins: ['remove_button'],
    openOnFocus: false
  })[0].selectize;

  //Close dropdown on clicking on control in focus
  selectize.$control.on('mousedown', function() {
    selectize.close();
  });

  //Close dropdown on clicking on plugin X
  selectize.$control.on('click', function() {
    selectize.close();
  });

  //Close dropdown on deleting query by pressing BACKSPACE if less than 2 symbols left
  selectize.$control_input.on('keydown', function(e) {
    if (e.keyCode == 8 && selectize.$control_input.val().length < 2) {
      selectize.close();
    }
  });

  //Close dropdown on typing query less than 2 symbols
  selectize.on('type', function(e) {
    if (selectize.$control_input.val().length < 2) {
      selectize.close();
    }
  });

  //Close dropdown on adding item
  selectize.on('item_add', function() {
    selectize.close();
  });

  //Close dropdown on removing item
  selectize.on('item_remove', function() {
    selectize.close();
  });
});

关于javascript - 处理选择上的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186103/

相关文章:

ruby-on-rails - 如何在我的 Rails 项目中使用 Rails Selectize?

selectize.js 动态添加选项以进行选择

javascript - Bing 搜索字符串

javascript - 从 JSON 获取的 Google map API 上的绑定(bind)标记

javascript - 无法使用 jquery 获取输入文本值

javascript - 在父元素悬停时取消子元素的过渡?

javascript - jQuery 条件代码未按预期工作 : returns 'undefined'

javascript - 如何解释浏览器之间不同的 "storage"事件行为?

javascript - 双引导简单侧边栏

shiny - 如何使用动态选项为 Shiny selectizeInput 添加书签?