2

http://www.bootply.com/YAQrE52K6X关闭自动对焦自举选/选择2

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

    <div class="container"> 

    <h3>Multiple Select</h3> 
    <select id="dataCombo" class="selectpicker" data-live-search="true" multiple="multiple" style="width:400px;"> 

    <option value="one">One</option> 
    <option value="two">Two</option> 
    <option value="three">Three</option> 
    <option value="four">Four</option> 
    <option value="five">Five</option> 
    <option value="six">Six</option> 
    </select> 

</div> 

我想关闭自动对焦功能,因此输入不问我点击下拉后立即进行搜索。试图使用.blur等...但迄今没有。四处寻找解决办法。由于同样的问题,移动到使用“select2”中的“bootstrap-select”。设备上的键盘出现覆盖多个下拉项目

+0

是否要禁用允许搜索的输入或者您只希望它不能自动对焦? – Dekel

+0

没有得到自动对焦 - 我仍然想使用搜索框,但不是马上点击下拉菜单。这将停止键盘立即出现在设备上。 –

回答

3

我无法解决这个bootstrap选择(好像他们有触发show.bs.selectshown.bs.select事件的一些问题),但既然你也提到你尝试过这与选择2,这里是为选择2的解决方案:

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

检查这个例子:
https://jsfiddle.net/yw61h28z/

更新 - 2016年12月5日

管理它的工作(需要一段时间玩焦点/模糊/目标的东西)。

$(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.第一次选择2被打开 - 模糊input (但只有一次) - 这确保了select2菜单打开,但input没有被聚焦(所以键盘不显示)。
2.关闭select2菜单 - 检查导致关闭的元素。
2.1。如果该元素是select2块的一部分 - 忽略它并关闭继续关闭菜单。
2.2其他 - 下一次select2菜单打开我们blurinput(再次 - 只有一次)。

+0

感谢您的回答。这个小问题是,当你现在想要使用搜索时,你只能在它失去焦点之前设置输入1个字符,因为选择打开类型触发模糊。有关修复您创建的小提琴的任何想法? –