`
JasonChi
  • 浏览: 92149 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

当select中内容过多时,使用搜索

阅读更多

当multiple select中内容过多,为满足软件的易用性,就需要能有搜索功能


function select_step(){
    var list1 = document.getElementById("list1");
    var step_name = document.getElementById("step_name").value;
    for (var i = 0; i < list1.options.length; i++) {
        if (list1.options[i].text.search(step_name) == 0) {
            list1.options[i].selected = true;
        }else
		{
			list1.options[i].selected = false;
		}
    }
}


汗啊,竟然就这么简单。


一开始的思路是 把搜索符合的项 存到一个js数组中,然后再把此数组覆盖 options,这样搜索是成功了,但要搜索选择第二个并进行搜索的时候 我想的也是,将第一次搜索过后的 剩余的options存入一个新的全局变量的数组,然后将此数组内的options一个一个从新加回,但中间老是遇到一个问题:
代码运行到1处的时候正常,但运行到2处全局变量就被改变的!我一直不太清楚这是怎么一回事。搞了许久没搞定,只能寻求他路了!

希望有看出下面代码错误的朋友能给我指正!谢谢!
var temps_options = new Array();//全局变量数组

function select_step(){
	var list1 = document.getElementById("list1");
	var step_name = document.getElementById("step_name").value;
	if (step_name != "") {
		var selected_options = new Array();
		for (var i = 0; i < list1.options.length; i++) {
			if (list1.options[i].text.search(step_name) == 0) {
				selected_options.push(list1.options[i])
			}
		}
		temps_options = document.getElementById("list1").options; //将所搜剩余的options放入此数组
		alert(temps_options.length);//1
		list1.options.length = 0;
		for (var j = 0; j < selected_options.length; j++) {
			list1.options.add(new Option(selected_options[j].text, selected_options[j].value));
		}
		alert(temps_options.length)//2
	}else{
		alert(temps_options[0].text);
		list1.options.length = 0;
		for(var i=0;i<temps_options.length;i++)
		{
			list1.options.add(new Option(temps_options[i].text,temps_options[i].value))
		}
	}
}



分享到:
评论

相关推荐

    el-select数据过多懒加载的解决(loadmore)

    下拉懒加载, 当select滚动到底部时, 你再去请求一部分数据, 加入到当前数据中. 某组件中: &lt;el-select v-model=value placeholder=请选择 filterable multiple v-el-select-loadmore=lo

    bootstrap-select下拉选择搜索框,可以多选和单选

    bootstrap-select下拉选择搜索框,可以多选和单选,用法非常简单,样式美观,项目中经常会使用到,特别选项过多的时候,欢迎大家下载使用

    antd的select下拉框因为数据量太大造成卡顿的解决方式

    相信用过antd的同学基本都用过select下拉框了,这个组件数据量...我的想法是这样的:任何时候都只渲染前100条数据以保证不卡顿,然后当需要搜索的时候对从后台拿到的数据进行过滤,也只取前100条,然后当select框不下拉

    下拉框变成下拉模糊搜索框

    目前的下拉框dropdownlist、select就是简单的选择,如果遇到内容过多会很难找出想找的选项,我用简单的js文件将现在的下拉框改成下拉模糊搜索框,支持汉字拼音首字母模糊匹配和字符串字串匹配,本代码的强大在于扩展...

    js实现select组件的选择输入过滤代码

    如何实现select组件的选择输入过滤作用,下面有一段js代码,很实用,需要的朋友可以看看

    Layui带搜索的下拉框的使用以及动态数据绑定方法

    今天小编就为大家分享一篇Layui带搜索的下拉框的使用以及动态数据绑定方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    mysql官方中文参考手册

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1....

    MYSQL中文手册

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的...

    SQL查询安全性及性能优化

    执行多表联接逻辑操作,嵌套循环联接通常使用索引在内部表中搜索外部表的每一行 从列中指定的非聚集索引中扫描所有行 利用索引的查找功能从非聚集索引中检索行 扫描和查找 聚集索引有扫描和查找 非聚集索引...

    SQL语句技巧

    1、应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,...不要在应用中使用数据库游标,游标是

    数据分页程序完全解决方案(含普通分页/分段分页/原始分页/since_id分页)

    但同样有弊端: a) 当用户已经到第100页时, 他要回到刚才感兴趣的第5页的信息时, 并不是很容易, 这其实是一条设计应用的规则, 我们不能让用户界面的单页屏数过多, 这样会降低用户体验; b) 单从数据角度看, 我们多次...

    MySQL 5.1中文手冊

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1....

    MySQL 5.1参考手册中文版

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 ...

    MySQL 5.1参考手册

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1....

    可支持快速搜索筛选的Android自定义选择控件

    Android 自定义支持快速搜索筛选的选择控件使用方法,具体如下 项目中遇到选择控件选项过多,需要快速查找匹配的情况。 做了简单的Demo,效果图如下: 源码地址:https://github.com/whieenz/SearchSelect 这个...

    mysql5.1中文手册

    在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中...

    MySQL 5.1官方简体中文参考手册

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1....

    MySQL5.1参考手册官方简体中文版

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1....

Global site tag (gtag.js) - Google Analytics