项目终于用到了联想查询,本来想直接用LayUI的联想查询,结果发现是静态联想,不支持AJAX,因此只能用了一个国外的插件Select2;

官方文档写的还是挺模糊的,经研究如下:

var selectBrand = $('.selectBrand').select2({
	language:'zh-CN', //语言包
	ajax: { //AJAX请求
		url: '/getBrandList.ajax',
		dataType: 'json',
		type: "POST",
		delay: 1500, //间隔时间
		minimumInputLength: 1, //最小输入字符
		cache:true, //开启缓存
		data: function (params){
			var query = { //请求的参数, 关键字和搜索条件之类的
				name: params.term//select搜索框里面的value
			}
			return query;
		},
		processResults: function(data, params){
			//修正为select2的格式即: 
			//var results =  [{id:0,text:'enhancement'},{id:1,text:'bug'},{id:2,text:'duplicate'}];
			//站长从接口返回的格式为: [{id:0,name:'enhancement'},{id:1,name:'bug'},{id:2,name:'duplicate'}];
			//因此使用replace方法进行转换, 将name属性换为text
			var results = JSON.parse(JSON.stringify(data).replace(/name/g,"text"));
			return {
				results: results //返回值
			};
		},
		escapeMarkup: function (markup) { return markup; }, //返回html实体,防止xss注入
	}
});

Select2官方地址:戳这里

附注:Select2的语言包加载方法

在官方下载的包里找: dist/js/i18n/zh-CN.js

将这个JS与Select2同时引用,最好引用在Select2.js的下面

<script src="vendor/select2/dist/js/select2/select2.min.js"></script>
<script src="vendor/select2/dist/js/select2/zh-CN.js"></script>

然后就可以愉快的使用中文了(参考上述代码)