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個字符,因爲選擇打開類型觸發模糊。有關修復您創建的小提琴的任何想法? –