可以输入也可以下拉选择的select

原创文章 作者:月光光 2016年01月28日 16:14helloweba.com 标签:JavaScript 

我们知道,一般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

声明:本文为原创文章,helloweba.net和作者拥有版权,如需转载,请注明来源于helloweba.net并保留原文链接:https://www.helloweba.net/javascript/348.html

9条评论

  • 李艳杰-天福国际

    下拉框为什么不随着,页面的滚动而滚动呢,求解,是什么影响的。

  • 静&听

    在弹出层使用时,下拉列表会显示在遮蔽层下面

  • select是在其他循环中显示吃的,比如最外边的循环是6个<tr>,那么select就有6个,这样的话,只有第一个select可以实现你的这样式和效果,其他的都不行,其他还是一般的select下拉列表

  • 楼主,希望你看到恢复啊,是js的问题吗?

  • 为什么多个select就不行,只有第一个可以啊?

  • 这个不错 以后可以在这个网站长时间学下了

  • 楼主 封装的方法 只能用一个 不能同时用几个吗?

  • 怎么下载下来的输入框样式就木有了呢!!虽然需要跪谢楼主,,这个问题求解决

  • 支持IE6吗?