通过如下代码就可以简单实现select带模糊查询的条件查询,具体如下jquery.select.js如下:
(function($) {
$.selectSuggest = function(target, data, itemSelectFunction) {
var defaulOption = {
suggestMaxHeight: '200px',//弹出框最大高度
itemColor : '#000000',//默认字体颜色
itemBackgroundColor:'RGB(199,237,204)',//默认背景颜色
itemOverColor : '#ffffff',//选中字体颜色
itemOverBackgroundColor : '#C9302C',//选中背景颜色
itemPadding : 3 ,//item间距
fontSize : 12 ,//默认字体大小
alwaysShowALL : true //点击input是否展示所有可选项
};
var maxFontNumber = 0;//最大字数
var currentItem;
var suggestContainerId = target + "-suggest";
var suggestContainerWidth = $('#' + target).innerWidth();
var suggestContainerLeft = $('#' + target).offset().left;
var suggestContainerTop = $('#' + target).offset().top + $('#' + target).outerHeight();
var showClickTextFunction = function() {
$('#' + target).val(this.innerText);
currentItem = null;
$('#' + suggestContainerId).hide();
}
var suggestContainer;
if ($('#' + suggestContainerId)[0]) {
suggestContainer = $('#' + suggestContainerId);
suggestContainer.empty();
} else {
suggestContainer = $('<div></div>'); //创建一个子<div>
}
suggestContainer.attr('id', suggestContainerId);
suggestContainer.attr('tabindex', '0');
suggestContainer.hide();
var _initItems = function(items) {
suggestContainer.empty();
var itemHight=0;
for (var i = 0; i < items.length; i++) {
if(items[i].text.length > maxFontNumber){
maxFontNumber = items[i].text.length;
}
var suggestItem = $('<div></div>'); //创建一个子<div>
suggestItem.attr('id', items[i].id);
suggestItem.append(items[i].text);
suggestItem.css({
'padding':defaulOption.itemPadding + 'px',
'white-space':'nowrap',
'cursor': 'pointer',
'background-color': defaulOption.itemBackgroundColor,
'color': defaulOption.itemColor
});
suggestItem.bind("mouseover",
function() {
$(this).css({
'background-color': defaulOption.itemOverBackgroundColor,
'color': defaulOption.itemOverColor
});
currentItem = $(this);
});
suggestItem.bind("mouseout",
function() {
$(this).css({
'background-color': defaulOption.itemBackgroundColor,
'color': defaulOption.itemColor
});
currentItem = null;
});
suggestItem.bind("click", showClickTextFunction);
suggestItem.bind("click", itemSelectFunction);
suggestItem.appendTo(suggestContainer);
suggestContainer.appendTo(document.body);
}
}
var inputChange = function() {
var inputValue = $('#' + target).val();
inputValue = inputValue.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
var matcher = new RegExp(inputValue, "i");
return $.grep(data,
function(value) {
return matcher.test(value.text);
});
}
$('#' + target).bind("keyup",
function() {
_initItems(inputChange());
});
$('#' + target).bind("blur",
function() {
if(!$('#' + suggestContainerId).is(":focus")){
$('#' + suggestContainerId).hide();
if (currentItem) {
currentItem.trigger("click");
}
currentItem = null;
return;
}
});
$('#' + target).bind("click",
function() {
if (defaulOption.alwaysShowALL) {
_initItems(data);
} else {
_initItems(inputChange());
}
$('#' + suggestContainerId).removeAttr("style");
var tempWidth = defaulOption.fontSize*maxFontNumber + 2 * defaulOption.itemPadding + 30;
var containerWidth = Math.max(tempWidth, suggestContainerWidth);
var h = this.scrollHeight;
$('#' + suggestContainerId).css({
'border': '1px solid #ccc',
'max-height': '100px',
'top': suggestContainerTop,
'left': suggestContainerLeft,
'width': containerWidth,
'position': 'absolute',
'font-size': defaulOption.fontSize+'px',
'font-family':'Arial',
'z-index': 99999,
'background-color': '#FFFFFF',
'overflow-y': 'auto',
'overflow-x': 'hidden',
'white-space':'nowrap'
});
$('#' + suggestContainerId).show();
});
_initItems(data);
$('#' + suggestContainerId).bind("blur",
function() {
$('#' + suggestContainerId).hide();
});
}
})(jQuery);
html如下:
<!DOCTYPE html>
<html lang="zh_cn">
<head>
<title>select.suggest</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<script src="js/jquery-1.10.2.js"></script>
<script src="js/jquery.select.js"></script>
</head>
<body>
<h1>Hello, world!</h1>
<div>
<div>
<div>.col-md-1
</div>
<div style="">
<input id="testInput" type="text" />
</div>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<!-- Include all compiled plugins (below), or include individual files as needed -->
</body>
<script type="text/javascript">
var datas =[{"id":"2","text":"中国石油"},
{"id":"4","text":"中国建筑"},
{"id":"3","text":"中国移动"},
{"id":"5","text":"中国工商银行"},
{"id":"7","text":"中国铁建"},
{"id":"8","text":"上海汽车集团"},
{"id":"9","text":"中国建设银行"},
{"id":"10","text":"联想集团"}];
var itemSelectFuntion = function(){
alert(this.id + "," + this.innerHTML);
};
$.selectSuggest('testInput',datas,itemSelectFuntion);
</script>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# jQuery
# select
# 模糊查询
# jquery zTree异步加载、模糊搜索简单实例分享
# jquery ztree实现模糊搜索功能
# jQuery实现id模糊查询的小例子
# jquery easyui combobox模糊过滤(示例代码)
# jQuery基于xml格式数据实现模糊查询及分页功能的方法
# jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
# jQuery实现模糊查询的方法分析
# jQuery实现模糊搜索功能的方法分析
# 创建一个
# 联想集团
# 中国建设银行
# 中国工商银行
# 弹出
# 上海
# 中国石油
# 中国
# 大家多多
# 就可以
# suggestContainer
# empty
# hide
# innerText
# null
# alert
# attr
# gt
# lt
# div
相关文章:
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
手机网站制作与建设方案,手机网站如何建设?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
深圳网站制作的公司有哪些,dido官方网站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
网站制作说明怎么写,简述网页设计的流程并说明原因?
婚礼视频制作网站,学习*后期制作的网站有哪些?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
jQuery 常见小例汇总
代购小票制作网站有哪些,购物小票的简要说明?
如何在云服务器上快速搭建个人网站?
高端云建站费用究竟需要多少预算?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何快速建站并高效导出源代码?
如何配置FTP站点权限与安全设置?
如何快速登录WAP自助建站平台?
实现虚拟支付需哪些建站技术支撑?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
香港服务器WordPress建站指南:SEO优化与高效部署策略
5种Android数据存储方式汇总
如何用虚拟主机快速搭建网站?详细步骤解析
如何在香港服务器上快速搭建免备案网站?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
广东企业建站网站优化与SEO营销核心策略指南
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何在万网自助建站平台快速创建网站?
油猴 教程,油猴搜脚本为什么会网页无法显示?
如何获取开源自助建站系统免费下载链接?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
b2c电商网站制作流程,b2c水平综合的电商平台?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
存储型VPS适合搭建中小型网站吗?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
已有域名和空间如何快速搭建网站?
大同网页,大同瑞慈医院官网?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
建站主机功能解析:服务器选择与快速搭建指南
如何快速查询域名建站关键信息?
建站主机无法访问?如何排查域名与服务器问题
广平建站公司哪家专业可靠?如何选择?
如何快速配置高效服务器建站软件?
css网站制作参考文献有哪些,易聊怎么注册?
定制建站方案优化指南:企业官网开发与建站费用解析
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
制作网页的网站有哪些,电脑上怎么做网页?
如何快速选择适合个人网站的云服务器配置?
如何在建站宝盒中设置产品搜索功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。