成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? jQuery插件實現可輸入和自動匹配的下拉框
全站頭部文字 我要出現在這里
jQuery插件實現可輸入和自動匹配的下拉框 748 2024-02-14   

實現可輸入+帶自動匹配功能的下拉框,我試過以下幾種方法:

1.直接使用h5的新標簽<datalist>,對應demo如下:

<input list="browsers">
<datalist id="browsers">
 <option value="Internet Explorer">
 <option value="Firefox">
 <option value="Chrome">
 <option value="Opera">
 <option value="Safari">
</datalist>

優點:節約js代碼;

缺點:IE 9及以下的IE瀏覽器 和 Safari 均不支持 <datalist> 標簽(好像還有幾個瀏覽器也不支持);重復點擊輸入框或者下拉圖標并不能收回下拉列表;樣式難以控制

2.使用基于jQuery的select2插件(需要同時引入select2.css和select2.js),html部分代碼如下:

<select class="select2_test" >
 <option></option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
</select>

js部分代碼如下:

$('.select2_test').select2({
 placeholder: "請選擇所屬選項",
 allowClear: true;
}); 

注意:與bootstrap的Modal模態框結合使用時,會出現下拉列表出現在遮罩層的底層和點擊彈出框關閉按鈕但下拉列表并沒有消失的問題,找了半天原來問題出在select2.css這個樣式表中,

原因:點擊輸入框,此插件會生成一個遮罩層(類名為.select2-drop-mask)和一個下拉列表(類名為.select2-drop),這兩者的層疊性(z-index)依次為9991,9992,但是modal彈出框的層疊性大于10000,所以才會導致出現上述兩個問題

解決辦法:如果將.select2-drop-mask和.select2-drop的z-index分別提高到19991、19992,下拉列表成功顯示在上面,但在打開了下拉列表的前提下點擊modal彈出框的關閉按鈕會先收回下拉框,再次點擊才能關閉彈出窗,用戶體驗不是很好;這里可以嘗試提高關閉按鈕的z-index,前提一定要父元素不能是modal彈出框,否則其提高的z-index無效。

如果想更深入了解select2.js插件,可以參考http://www.gimoo.net/article/95561.htm

3.造成select2.js上述不適的主要原因在于.select2-drop的失去焦點是要點到select2-drop-mask上才能觸發,為改善這種機制,這里推薦另一款基于jQuery的下拉搜索框插件magicsuggest(需要同時引入magicsuggest.css和magicsuggest.js),html部分很簡單,直接就是:

<div id="magicsuggest"></div>

js部分代碼如下:

$('#magicsuggest').magicSuggest({
  placeholder:'',
  allowFreeEntries: false,
  maxSelection:1,
  autoSelect:true,
  valueField:"id",
  displayField:"value",
  resultAsString:true,
  selectionStacked: true,
  highlight:false,
  data: ['Paris', 'New York', 'Gotham']
}); 

優點:不會出現層疊性沖突的問題;樣式美觀;允許多項選擇

缺點:多余的樣式較多(陰影、高亮、錯誤提示、多選),需要根據具體需要調整樣式;不能直接通過$(this).val()來獲取原輸入框的值;數據量過大時加載會出現延遲

4.鑒于上面那個插件默認的是多選的樣式,用到項目里也不能直接獲取<select>標簽里的值,這里我個人推薦chosen這款插件(需要同時引入chosen.css和chosen.js),html部分代碼如下:

<select data-placeholder="Type 'C' to view" style="width:100%" class="myselect chosen-select-no-results" tabindex="10">
 <option value=""></option>
 <option>American Black Bear</option>
 <option>Asiatic Black Bear</option>
 <option>Brown Bear</option>
 <option>Giant Panda</option>
 <option>Sloth Bear</option>
 <option>Sun Bear</option>
 <option>Polar Bear</option>
 <option>Spectacled Bear</option>
</select> 

js部分代碼如下:

var config = {
  '.chosen-select':{},
  '.chosen-select-deselect':{allow_single_deselect:true},
  '.chosen-select-no-single':{disable_search_threshold:10},
  '.chosen-select-no-results':{no_results_text:'Oops, nothing found!'},
  '.chosen-select-width':{width:"95%"}
}
for (var selector in config) {
  $(selector).chosen(config[selector]);
} 

注意:如果與bootstrap的Modal模態框結合使用時,會出現下拉列表顯示不出來, 同時.modal-body右側出現滾動條,原因就在于bootstrap給.modal-body設置了一個overflow-y:auto的默認樣式,所以解決辦法就是給.modal-body添加一個overflow-y:visible的樣式來覆蓋它。

5.當然,實現相同功能的jQuery插件還有很多,具體可以參考http://www.cnblogs.com/lhb25/p/form-enhanced-with-javascript-three.html

如果大家還想深入學習,可以點擊jquery下拉框效果匯總、JavaScript下拉框效果匯總進行學習。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持綠夏網。



主站蜘蛛池模板: 日韩成人精品 | 国产h在线观看 | 九色精品| 毛片网页 | 91理论片午午伦夜理片久久 | 国内精品久久久久 | 双性呜呜宫交受不住了h | 窝窝午夜精品一区二区 | 欧美不卡一区二区三区 | 三级黄色网址 | 国产激情综合五月久久 | 放几个免费的毛片出来看 | 精品一二三 | 久久免费影院 | 激情福利视频 | 日本在线视频一区 | 久久久久一区 | 亚洲第一在线 | 午夜h | 9999精品视频 | 国产成人影视 | 久久国产综合 | a毛片视频 | 超碰在线网站 | 色一情一乱一乱一区91av | 99国产在线观看 | 欧美黑粗大 | 午夜视频成人 | 国产不卡在线观看 | 国产美女免费 | 中文字幕第一区综合 | 亚洲欧美日韩国产 | 影音先锋国产精品 | 色综合一区二区 | 久草福利 | 狠狠干 | 日韩在线视频播放 | 日韩一区在线视频 | 神马午夜嘿嘿 | 四虎免费在线观看 | 黄色三级av |

?。。≌鹃L長期在線接!?。?/p>

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103