原生js 讓<select>下拉框自動展開 可用size 屬性來代替展開動作
阿新 • • 發佈:2020-10-29
找遍全網都沒一個比較好的例子!!!
什麼獲得焦點事件,或者新增一個點選事件都不能使下拉框自動展開
最後用<select>標籤的siz屬性
定義和用法
size 屬性規定下拉列表中可見選項的數目。
如果 size 屬性的值大於 1,但是小於列表中選項的總數目,瀏覽器會顯示出滾動條,表示可以檢視更多選項。
實踐效果:
1.點選提交按鈕,下拉框未選,但是要給下拉框一個聚焦事件
let select = document.getElementById('xxx')
select.focus()//聚焦
2.聚焦之後下框是不會自動展開的,檢視資料沒有屬性,也沒有支援的方法,網上說可以用sizes屬性來代替下拉框的展開動作
select.setAttribute("size",select.options.length); // 設定
3.展開效果出來了,但是你選中之後,下拉框並不會關閉展開項
4.所以你還要在選中之後新增一個事件來把它的size屬性變為0,這樣就可以關閉展開項
5.HTML+vue
<select @change="recoverSize" class="span_blue_select" id="freightType" >
recoverSize : function () {
document.getElementById('freightType').setAttribute("size", 0)// 設定
}