使select在選中/聚焦時列出所有選項目前比較好的處理方式
來源:易賢網(wǎng) 閱讀:952 次 日期:2016-06-21 10:12:52
溫馨提示:易賢網(wǎng)小編為您整理了“使select在選中/聚焦時列出所有選項目前比較好的處理方式”,方便廣大網(wǎng)友查閱!

在頁面上使用快捷鍵盤快捷定位到支付方式選擇框(一個下拉列表)并進行選擇,在網(wǎng)上找了些資料后,得出目前比較好的處理方式在此與大家分享下,希望對大家有所幫助

在開發(fā)中,遇到這樣一個需求情況,因此記錄下來以備用

需求背景

在頁面上使用快捷鍵盤快捷定位到支付方式選擇框(一個下拉列表)并進行選擇。

技術(shù)難點

目前瀏覽器并不支持通過代碼定位下拉列表時就列出其下所有選項,只能通過鼠標點擊。

在網(wǎng)上找了些資料后,得出目前比較好的處理方式;

利用select的size屬性,配合盒子布局的position屬性來實現(xiàn),具體代碼如下:

代碼如下:

<td align="right">

支付方式:

</td>

<td style="padding:0px;vertical-align:top;">

<!-- 這里必須用div包著select,否則在ff下不兼容 -->

<span style="color:#ff0000"><div style="position:relative;padding:1px;">

</span> <select id="payType" name="payType" style="position:absolute;" onfocus="expand(this)" onblur="unexpand(this)">

<option>人民幣</option>

<option>美元</option>

<option>信用卡</option>

<option>港幣</option>

<option>港幣</option>

</select>

<span style="color:#ff0000"></div>

</span></td>

expand和unexpand方法都很簡單:

代碼如下:

function expand(obj){

$(obj).attr("size","10");

}

function unexpand(obj){

$(obj).attr("size","1");

}

把select的position設置為absolute,使其不影響dom的流布局。再把其容器的position設置為relative,使select根據(jù)其容器來定位。

這里需要注意的是在table元素中必須使用div作為select的容器,因為根據(jù)w3c的css標準,在table相關(guān)元素設置position:relative是未定義的,所以在ff下select元素會直接根據(jù)body元素來定位。

參考的資料:

http://www.php-insite.com/autoexpand_select.html 直接查看頁面源代碼

http://bbs.csdn.net/topics/330158935 留意lingshuo1993的回答

更多信息請查看網(wǎng)頁制作
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)