關於下拉列表為展開狀態的控制

2021-04-15 11:13:58 字數 1326 閱讀 7948

在csdn發表第一篇部落格,想談談最近遇到的問題!

最近一直搞公司版塊,但是,程式那邊的乙個師兄,突然叫我試著搞一些tooltip和div模仿下拉列表之類的小工具。於是,我就開始忙了起來,雖然,這些都不是什麼難題,不過,要做,還是要做個好的,而且簡單的。於是我上網搜尋了一下,先說說下拉列表的問題吧,這個東西的樣子大概就是下面這樣。

當我在這個input裡面輸入的時候,就會出現

abcd-01

abcd-02

abcd-03

而且顯示的內容要和輸入內容匹配,並且select是要展開的,我覺得這樣會比做乙個div出來要方便,畢竟是乙個表單,傳參傳值都似乎比較容易。

但是上網搜了很久,都找不到乙個合適的,主要是要select為展開狀態這裡比較難一點,有些是教我們把select的size屬性定死,好象我有3個option,就把size定為3這樣,雖然這樣能解決,但是,如果我的option是不定的呢?這樣就不行了。又看到有人把select的mutiple屬性定出來,就是把select定性為多選列表,這樣也不合要求,不過的確能把select定為展開狀態。乙個自己找出來的延伸的方法,雖然後來證實不行,不過也說說,聽說過css和js之間的互動,不但能用js訪問css,控制css,調過來,css也可以控制和訪問js,介面就是expression,可是後來發現,第一,expression似乎會很耗資源,第二,expression好象在ff裡面不支援,第三,在css裡面為select定乙個size的樣式似乎是無效的,size樣式只能定為select的屬性,並不能作為樣式。於是又要繼續想。

後來,我終於不耐煩了,結果最後就用了一段js來控制,原理就是獲取dom裡面select元素的option項的數目,然後把size屬性的數值定為這個數目就ok了,似乎不難,但是,在網上的確找了很久都沒找到合適的,不管了,自己發一發,可能會幫到其他有需要的人。

如果有高手看見這篇文章,覺得我的觀點不對,希望幫忙糾正,我也可以從中學習,謝謝...

下面是用來控制select為展開狀態的html和js:

html:

option1

option2

option3

option4

js:/*-以下就是用於控制select為展開狀態,並且把不需要使用滾動條,size屬性自動與列表項數匹配--*/

var select1  = document.getelementbyid("select1");

select1.size = select1.options.length;

function openlist(obj) {

/* 這裡就是控制input和select之間打交道的**了,這個跟這篇文章問題沒多大關係,所以就省略了 */

c 如何儲存樹的展開狀態

前提 每個node有唯一標識的東東,我的示例中展現的是資料夾,每個tooltip是檔案 資料夾的路徑。不同的唯一標識的話,把關於tooltip的相關方面更改即可 private list listvisiblenodes new list private string lastselectednod...

cookie 儲存導航選單的展開狀態

選單展開狀態儲存,最開始是用session來存的,用session存沒點選一次選單就會多次訪問後台頁面,影響頁面載入速度,後來改用js的cookie來存 如下 獲取cookie function getcookie name else 設定cookie function setcookie name...

關於控制下拉列表的JS控制

文字框有readonly屬性,直接設定 下拉框沒有readonly屬性,也不能通過其他屬性進行唯讀的設定,下拉框只有disabled屬性,但是這個屬性設成true之後,值就獲取不到了 網上搜了一下,大部分是控制滑鼠 鍵盤事件,來控制唯讀的 即 不讓下拉框獲取焦點 如下 1 2其中 nm usem v...