我們知道,一般select下拉框是隻能選擇的,不能用來輸入內容的。而有時我們會遇到下拉框中沒有要選擇的信息項或者下拉選項特別多時,我們可以讓select變成text,允許用戶輸入想要的內容,同時還可以在輸入的時候將包含關鍵字的項也列出來,供快速選擇。
本文將用實例和大家分享一款基於jQuery的下拉框插件,它允許用戶輸入內容,同時下拉選項中會及時匹配相關選項,支持鍵盤操作,還支持html選項內容,當然還能讓下拉的過程帶有動畫效果。我們來看下如何使用。
HTML結構
下面是一個基本的select下拉框。
<select id="editable-select">
<option>Alfa Romeo</option>
<option>Audi</option>
<option>中國人民銀行</option>
<option>中國人民</option>
<option>中國</option>
<option>BMW</option>
</select>
此外還需要加載jQuery庫和jquery.editable-select.js文件,在源碼下載包裏已經有了。
jQuery
只需要以下代碼就能實現傳統的下拉框變成有輸入功能的下拉框了。
$('#editable-select').editableSelect({
effects: 'slide'
});
其實我們細看插件代碼就會發現,作者是將原有的select處理了下,變成了一個輸入表單text和一個列表ul。這樣text可以輸入,下拉選項則用ul面板,這樣一來ul裏的選項就可以添加任意html代碼了,demo中有示例。然後通過使用CSS以及js技術可以實現下拉彈出、輸入查找匹配功能。
選項設置
filter:過濾,即當輸入內容時下拉選項會匹配輸入的字符,支持中文,true/false,默認true。
effects:動畫效果,當觸發彈出下拉選擇框時的下拉框展示過渡效果,有default,slide,fade三個值,默認是default。
duration:下拉選項框展示的過渡動畫速度,有fast,slow,以及數字(毫秒),默認是fast。
事件
onCreate:當輸入時觸發。
onShow:當下拉時觸發。
onHide:當下拉框隱藏時觸發。
onSelect:當下拉框中的選項被選中時觸發。
事件調用方法:
$('#editable-select').editableSelect({
onSelect: function (element) {
alert("Selected!");
}
});
此外,還支持鍵盤方向鍵、回車鍵、Tab鍵以及Esc鍵操作。
jQuery Editable Select項目官網地址:https://github.com/indrimuska/jquery-editable-select