博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可输入也可选择的下拉框
阅读量:6048 次
发布时间:2019-06-20

本文共 1691 字,大约阅读时间需要 5 分钟。

最近在前端web页面开发的时候,用到比较多数据的下拉框,就寻思着能不能即可模糊查询过滤又可下拉选择呢?答案肯定是可以的,经过搜索参考,发现jquery的editable-select插件不错,支持键盘操作,配置使用也简单,于是就引进项目使用,在这里做下总结。

原理解析:

一般的select框肯定是不能输入的,阅读editable-select插件源码,其实是将select变成一个input,然后将select里面的option变成ul元素,这样以来就可以实现输入以及通过js/css过滤了。

使用:

1, 引入js、css

由于是jquery的插件,肯定是基于jquey.js的,然而在使用的过程中我发现引入项目中的jQuery v@1.8.0会有一个js报错,不能读取某个元素的子元素。不知道是jquery版本问题还是?因为时间有限不纠结在此,后来引入 jQuery JavaScript Library v2.1.1/v1.11.1 Copyright 2005, 2014 jQuery   一切正常。

远程引用jquery地址: //建议下载到本地

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

引用editable:

<link href="https://rawgithub.com/indrimuska/jquery-editable-select/master/source/jquery.editable-select.min.css" rel="stylesheet" />

<script src="https://rawgithub.com/indrimuska/jquery-editable-select/master/source/jquery.editable-select.js"></script>

2,HTML

3,js渲染,赋值,取值

在渲染完select框之后加入代码:

$('.shift-info').editableSelect({             effects: 'slide',            onSelect: function (element) {
       //$('.shift-info').attr({'data-val':element.val(),'placeholder':'请输入或选择班次名..'});         $('.shift-info').attr('data-val',element.val())  } }).prop('placeholder','请输入或选择班次名..');

effects:当触发弹出下拉选择框时的下拉框展示过渡效果,有default,slide,fade三个值,默认是default。

onSelect:当下拉框中的选项被选中时触发。

注意:

1,这个时候如果我们用$('.shift-info').val()取值得到的是中文文本,而我们平时使用下拉框时一般是使用其id值,所以这里onselect选中后使用.attr()自定义属性需要赋值,再通过$('.shift-info').attr('data-val')取值。

2,因为这个插件是将select框变成input和ul,在这里给input元素添加placeholder属性优化用户体验。

 

当然还有其他的属性配置:

filter:过滤,即当输入内容时下拉选项会匹配输入的字符,支持中文,true/false,默认true。

duration:下拉选项框展示的过渡动画速度,有fast,slow,以及数字(毫秒),默认是fast。

onCreate:当输入时触发。

onShow:当下拉时触发。

onHide:当下拉框隐藏时触发。

 

4,效果图

 

 

转载于:https://www.cnblogs.com/liliangel/p/5511532.html

你可能感兴趣的文章
windows下查看真实的IP与MAC工具
查看>>
我的友情链接
查看>>
IE9浏览器固定网站功能的实现方法
查看>>
保护你的Web服务器 iptables防火墙脚本全解读
查看>>
Swift分支语句—switch语句
查看>>
oracle2
查看>>
HTTP 错误 401.3 - Unauthorized
查看>>
RHEL 6.4 多网卡绑定
查看>>
Python自动化测试例子--一个简单的自动化测试用例脚本--批量执行测试用例
查看>>
丢失了 Visual Basic 项目
查看>>
ruby数组的find 和 select方法的区别
查看>>
删除历史记录后,兼容性视图列表被清空怎么办?
查看>>
HTML5 & CSS3 初学者指南(4) – Canvas使用
查看>>
Azure 上通过 SendGrid 发送邮件
查看>>
SSKeychain在iOS中的原理和使用说明
查看>>
java4j配置和使用
查看>>
实现MySQL/MariaDB读写分离的中间件--MySQLRouter和Proxysql
查看>>
echarts x轴类目同名,导致markPoint错位
查看>>
技术教育的兴起
查看>>
闭包函数与全局变量
查看>>