JavaScript如何讓select選擇框可輸入和可下拉選擇
【1】Html+CSS兼容IE實現(xiàn)
基本原理:使用 input/select 兩個元素,然后 input 覆蓋在 select 上層 ,寬度并比select窄一點,這樣用戶就能點到select的箭頭彈出下拉框
<div class="select-editable"> <select onchange="this.nextElementSibling.value=this.value"> <option value=""></option> <option value="115x175 mm">115x175 mm</option> <option value="120x160 mm">120x160 mm</option> <option value="120x287 mm">120x287 mm</option> </select> <input type="text" name="format" value="" /> </div>
.select-editable { position:relative; background-color:white; border:solid grey 1px; width:120px; height:18px; } .select-editable select { position:absolute; top:0px; left:0px; font-size:14px; border:none; width:120px; margin:0; } .select-editable input { position:absolute; top:0px; left:0px; width:100px; padding:1px; font-size:12px; border:none; } .select-editable select:focus, .select-editable input:focus { outline:none; }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .select-editable { position: relative; background-color: white; border: solid grey 1px; width: 120px; height: 18px; } .select-editable select { position: absolute; top: 0px; left: 0px; font-size: 14px; border: none; width: 120px; margin: 0; } .select-editable input { position: absolute; top: 0px; left: 0px; width: 100px; padding: 1px; font-size: 12px; border: none; } .select-editable select:focus, .select-editable input:focus { outline: none; } </style> <script src="./jquery.min.js"></script> </head> <body> <div class="select-editable"> <select onchange="this.nextElementSibling.value=this.value" id="cookies"> <!-- <option value=""></option> <option value="115x175 mm">115x175 mm</option> <option value="120x160 mm">120x160 mm</option> <option value="120x287 mm">120x287 mm</option> --> </select> <input type="text" name="format" value="" /> </div> <script> window.onload = function () { var optionList = [ { value: '1' }, { value: '2' }, { value: '3' }, { value: '4' }, { value: '5' }, ] $('#cookies').empty() if (optionList && optionList.length > 0) { for (var i = 0; i < optionList.length; i++) { $('#cookies').append(`<option value="` + optionList[i].value + `">`+optionList[i].value+`</option>`); } } } </script> </body> </html>
【2】datalist
Datalist是HTML5的原生標(biāo)簽,用于向input提供下拉和自動提示選項,支持輸入和下拉選擇兩種方式。但是目前IE10及其以下瀏覽器并不支持, 并且IE11無法觸發(fā)input和change事件,相當(dāng)于IE系列均無法很好地實現(xiàn)。如果僅支持Chrome或Eletron桌面的應(yīng)用則可以放心使用。
<input list="cookies" placeholder="Type of Cookie"/> <datalist id="cookies"> <option value="Chocolate Chip"/> <option value="Peanut Butter"/> <option value="Raisin Oatmeal"/> </datalist>
<body> <div> <input list="cookies" placeholder="請選擇或輸入" /> <datalist id="cookies"> <!-- <option value="Chocolate Chip" /> <option value="Peanut Butter" /> <option value="Raisin Oatmeal" /> --> </datalist> </div> <script> window.onload = function () { var optionList = [ { value: '1' }, { value: '2' }, { value: '3' }, { value: '4' }, { value: '5' }, ] $('#cookies').empty() if (optionList && optionList.length > 0) { for (var i = 0; i < optionList.length; i++) { $('#cookies').append(`<option value="` + optionList[i].value + `" />`); } } } </script> </body> </html>
總結(jié)
到此這篇關(guān)于JavaScript如何讓select選擇框可輸入和可下拉選擇的文章就介紹到這了,更多相關(guān)js select選擇框可輸入可下拉選擇內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript DIV實現(xiàn)跟隨鼠標(biāo)移動
這篇文章主要為大家詳細介紹了javascript DIV跟隨鼠標(biāo)移動,有一個div跟隨鼠標(biāo)移動的結(jié)果,有一連串跟隨鼠標(biāo)移動的效果,感興趣的小伙伴們可以參考一下2016-02-02JavaScript NodeTree導(dǎo)航欄(菜單項JSON類型/自制)
利用閑暇時間自己做了個JavaScript NodeTree,網(wǎng)上有很多類似的效果,本例主要是練練手,鞏固下知識,感興趣的朋友可以了解下,或許對你學(xué)習(xí)NodeTree導(dǎo)航欄有所幫助,認為好的就分享嘍2013-02-02javascript正則表達式使用replace()替換手機號的方法
這篇文章主要介紹了javascript正則表達式使用replace()替換手機號的方法,可實現(xiàn)把手機號第4位到第7位替換成****的功能,是非常實用的技巧,需要的朋友可以參考下2015-01-01