ajax异步查询下拉框,自动完成下拉框 Select2 关键字搜索的实例(本地数据与异步获取)...

最终效果

9afdb3f3a8c012272dfc0f9b59c405f3.png

1f133e73299ba5d41c1c68e3cca55742.png

首先我们要有一个基础的文本框

使用本地数据的写法

$('#userSelect').select2({

placeholder : "请输入",

minimumInputLength : 1,

multiple : true,

separator : "^", // 分隔符

maximumSelectionSize : 5, // 限制数量

initSelection : function (element, callback) { // 初始化时设置默认值

var data = [];

$(element.val().split("^")).each(function () {

data.push({ id: this, text: this });

});

callback(data);

},

createSearchChoice : function(term, data) { // 创建搜索结果(使用户可以输入匹配值以外的其它值)

return { id: term, text: term };

},

formatSelection : function (item) { return item.id; }, // 选择结果中的显示

formatResult : function (item) { return item.id; }, // 搜索列表中的显示

data: {

results: [

{ id: "北京", text: "bj beijin 北京" },

{ id: "厦门", text: "xm xiamen 厦门" },

{ id: "福州", text: "fz fuzhou 福州" }

]

}

});

使用异步数据的写法

脚本

$('#userSelect').select2({

placeholder : "请输入",

minimumInputLength : 1,

multiple : true,

separator : "^", // 分隔符

maximumSelectionSize : 5, // 限制数量

initSelection : function (element, callback) { // 初始化时设置默认值

var data = [];

$(element.val().split("^")).each(function () {

data.push({id: this, text: this});

});

callback(data);

},

createSearchChoice : function(term, data) { // 创建搜索结果(使用户可以输入匹配值以外的其它值)

return { id: term, text: term };

},

formatSelection : function (item) { return item.id; }, // 选择结果中的显示

formatResult : function (item) { return item.id; }, // 搜索列表中的显示

ajax : {

url : "test-api", // 异步请求地址

dataType : "json", // 数据类型

data : function (term, page) { // 请求参数(GET)

return { q: term };

},

results : function (data, page) { return data; }, // 构造返回结果

escapeMarkup : function (m) { return m; } // 字符转义处理

}

});

服务端(这里以 Laravel 为例)

Route::get('test-api', function () {

$q = Input::get('q');

// do something ...

return array(

// 'more' => false,

'results' => array(

array('id' => '北京', 'text' => 'bj beijin 北京'),

array('id' => '厦门', 'text' => 'xm xiamen 厦门'),

array('id' => '福州', 'text' => 'fz fuzhou 福州'),

),

);

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值