1. 程式人生 > 實用技巧 >原生js 讓<select>下拉框自動展開 可用size 屬性來代替展開動作

原生js 讓<select>下拉框自動展開 可用size 屬性來代替展開動作

找遍全網都沒一個比較好的例子!!!

什麼獲得焦點事件,或者新增一個點選事件都不能使下拉框自動展開

最後用<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)// 設定
}