jQuery插件:仿百度搜索下拉框Select -可模糊查询

介绍一款基于jQuery的搜索分页插件,该插件简单易用且兼容多种框架,支持自定义显示格式及回调函数,适用于快速实现网页搜索功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jQuery插件:一个仿百度搜索分页插件,使用简单,兼容很多框架

参照select2、autocomplete

GitHub https://github.com/StarIL/select-input-autocomplete

js调用代码

//简易调用
$('#auto').bigAutocomplete({
	data:data1
});
//title
$('#title').bigAutocomplete({
	data:data2,
	title:'text'
});
//回调方法
$('#callback').bigAutocomplete({
	data:data2,
	title:'text',
	callback:function(row){
		alert(row.text+'|'+row.value);
		console.log(row.text+'|'+row.value);
	},
});
//自定义选择/展示-1
$('#formatItem').bigAutocomplete({
	data:data3,
	title:'text',
	formatItem:function(data, i, row){
		return row.text +' (' +row.form + ')';
	},
	callback:function(row){
		console.log('水果:'+row.text+'; 店铺:'+row.form+'; id:'+row.value);
	},
});
//自定义选择/展示-2
$('#formatSelected').bigAutocomplete({
	data:data3,
	title:'text',
	formatItem:function(data, i, row){
		return row.text +' (' +row.form + ')';
	},
	//默认formatSelected=formatItem,这里formatSelected不同,额外定义
	formatSelected:function(data, i, row){
		return row.text;
	},
	callback:function(row){
		console.log('水果:'+row.text+'; 店铺:'+row.form+'; id:'+row.value);
	},
});
//是否必须绑定data
var value1 = null;
$('#custom').bigAutocomplete({
	data:data3,
	title:'text',
	custom:false,//不允许用户自定义值
	callback: function (row,param){
		//定义custom:false后,如果用户清空值,row就是null
		if(row != null){
			value1 = row.value;
			console.log(value1);
		}else{
			//value1 = row.value;//这样会异常
			value1 = null;
			console.log(value1);
		}
	}
});
//自定义选择/展示-2
$('#width').bigAutocomplete({
	data:data3,
	title:'text',
	width : 130,
	formatItem:function(data, i, row){
		return row.text +' (' +row.form + ')';
	},
	//默认formatSelected=formatItem,这里formatSelected不同,额外定义
	formatSelected:function(data, i, row){
		return row.text;
	},
	callback:function(row){
		console.log('水果:'+row.text+'; 店铺:'+row.form+'; id:'+row.value);
	},
});
//param 自定义参数,动态构建/渲染html时可以用到
$("#param").bigAutocomplete({
	data:data3,
	//url:'/apple/queryByKeywords',//url自行研究,条件限制这里就不写demo了
	title:'text',
	formatItem:function(data, i, row){
		return row.text +' (' +row.form + ')';
	},
	formatSelected:function(data, i, row){
		return row.text;
	},
	callback:function(row,param){
		console.log('param:'+ param + 'value:' + row.value);
	},
	param:1,
});

html代码

<table>
	<tr>
		<td>简易调用</td><td><input id="auto" class="input-default" autocomplete="off"/></td>
	</tr>
	<tr>
		<td>title参数</td><td><input id="title" class="input-default" autocomplete="off"/></td>
	</tr>
	<tr>
		<td>callback参数</td><td><input id="callback" class="input-default" autocomplete="off"/></td><td>(alert 预警)</td>
	</tr>
	<tr>
		<td>formatItem参数</td><td><input id="formatItem" class="input-default" autocomplete="off"/></td>
	</tr>
	<tr>
		<td>formatSelected参数</td><td><input id="formatSelected" class="input-default" autocomplete="off"/></td>
	</tr>
	<tr>
		<td>custom参数</td><td><input id="custom" class="input-default" autocomplete="off"/></td>
	</tr>
	<tr>
		<td>width参数</td><td><input id="width" class="input-default" autocomplete="off"/></td>
	</tr>
	<tr>
		<td>param参数</td><td><input id="param" class="input-default" autocomplete="off"/></td>
	</tr>
</table>

数据源js代码

var data1 = [{title:'苹果'},{title:'香蕉'},{title:'梨子'},{title:'火龙果'},{title:'芒果'},{title:'菠萝'}];

var data2 = [{value:1,text:'苹果'},{value:2,text:'香蕉'},{value:3,text:'梨子'},{value:4,text:'火龙果'},{value:5,text:'芒果'},{value:6,text:'菠萝'}];

var data3 = [{value:1,text:'apple',form:'世纪苹果店1'},{value:2,text:'Banana',form:'进口店2'},
			{value:3,text:'appleGo',form:'苹果店3'},{value:5,text:'apple',form:'苹果店4'},
			{value:4,text:'appleGo',form:'苹果店5'},{value:6,text:'Banana',form:'进口店店6'},
			{value:8,text:'appleGo1',form:'苹果店7'},{value:7,text:'苹果',form:'苹果店8'}];

当然了,也可以使用ajax异步加载数据,数据格式可以自行设置

/*每次输入值从url通过请求中获取数据*/
$("#productName_"+i).bigAutocomplete({
    url:'www.baidu.com/xxxx',
    title:'title',
});

是不是简单好用的,大家使用时有疑问或问题,或者有需要改进时,可以在下方留言给我哦。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

star大鑫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值