关闭bootstrap-select / select2的自动对焦function

http://www.bootply.com/YAQrE52K6X

$("#dataCombo").selectpicker({ multiple:true }); 

Multiple Select

One Two Three Four Five Six

我想关闭自动对焦,因此输入不会要求我在单击下拉列表后立即搜索。 试图使用.blur等……但到目前为止还没有。 寻找解决方案。 由于同样的问题,从“select2”移动使用“bootstrap-select”。 设备上的键盘显示为覆盖多个下拉项目

我无法通过bootstrap-select解决这个问题(似乎他们在触发show.bs.selectshown.bs.select事件时show.bs.select一些问题),但是既然你也提到过用select2尝试了这个问题,这里是select2的解决方案:

  $("#dataCombo").select2({ closeOnSelect: false }); $("#dataCombo").on('select2:open', function () { $(document.activeElement).blur() }); 

检查此示例:
https://jsfiddle.net/yw61h28z/

更新 – 2016/12/05

管理让它工作(花了一些时间玩焦点/模糊/目标事物)。

 $(document).ready(function() { $("#dataCombo").select2({ closeOnSelect: false }); $("#dataCombo").one('select2:open', function (e) { $(document.activeElement).blur() }); $("#dataCombo").on('select2:close', function(e) { if ($(event.target).parents('.select2').length) { // The closing was done inside the select2 container } else { $("#dataCombo").one('select2:open', function (e) { $(document.activeElement).blur() }); } }); }); 

这是我原来的jsfiddle的更新:
https://jsfiddle.net/yw61h28z/4/

以下是代码背后的想法:
1.第一次打开select2 – 模糊input (但只有一次) – 这样可以确保select2菜单打开,但input没有聚焦(因此键盘不会显示)。
2.关闭select2菜单 – 检查导致关闭的元素。
2.1。 如果该元素是select2块的一部分 – 忽略它并关闭继续关闭菜单。
2.2其他 – 下次打开select2菜单时,我们会blur input (再次 – 只有1次)。