select2 插件的选项无法选中

4 篇文章 0 订阅
2 篇文章 0 订阅

select2 是一个可以自动补全的插件。

官网地址:http://ivaynberg.github.io/select2/

 

使用“Loading Remote Data”的例子,利用ajax从服务器端获得json数据,展现在select2上面。

发现一个问题:不能选择这些选项。

原始代码如下:

	$('#searchTasksSelectId').select2({
		width : 450,
		placeholder : '任务名称/资源名称',
		minimumInputLength : 1,
		ajax : { // instead of writing the function to execute the request we
					// use Select2's convenient helper
			url : basePath + 'web/taskConfigure/queryTasks',
			dataType : 'json',
			quietMillis : 250,
			data : function(term, page) {
				return {
					q : term, // search term
				};
			},
			results : function(data, page) { // parse the results into the
												// format expected by Select2.
				// since we are using custom formatting functions we do not need
				// to alter the remote JSON data
				return {
					results : data.items
				};
			},
			cache : true
		},
		initSelection : function(element, callback) {
		},
		formatResult : repoFormatResult, // omitted for brevity, see the
											// source of this page
		formatSelection : repoFormatResult, // omitted for brevity, see the
											// source of this page
		dropdownCssClass : 'bigdrop', // apply css that makes the dropdown
										// taller
		escapeMarkup : function(m) {
			return m;
		} // we do not want to escape markup since we are displaying html in
			// results
	});
	
function repoFormatResult(rs) {
	var markup = rs.taskName + '(ID:' + rs.taskId + ',owner:' + rs.ownUserId
			+ ')';
	return markup;
}

 

后来在网上找了一下,原因是:

Select2 使用ajax从服务器取回数据之后,要进行点选,必须知道唯一的ID。也就是给selec2添加id属性。

之后的代码是:

 

	$('#searchTasksSelectId').select2({
		width : 450,
		placeholder : '任务名称/资源名称',
		minimumInputLength : 1,
		id : function(rs) {
			return rs.taskId;
		},
		ajax : { // instead of writing the function to execute the request we
					// use Select2's convenient helper
			url : basePath + 'web/taskConfigure/queryTasks',
			dataType : 'json',
			quietMillis : 250,
			data : function(term, page) {
				return {
					q : term, // search term
				};
			},
			results : function(data, page) { // parse the results into the
												// format expected by Select2.
				// since we are using custom formatting functions we do not need
				// to alter the remote JSON data
				return {
					results : data.items
				};
			},
			cache : true
		},
		initSelection : function(element, callback) {
		},
		formatResult : repoFormatResult, // omitted for brevity, see the
											// source of this page
		formatSelection : repoFormatResult, // omitted for brevity, see the
											// source of this page
		dropdownCssClass : 'bigdrop', // apply css that makes the dropdown
										// taller
		escapeMarkup : function(m) {
			return m;
		} // we do not want to escape markup since we are displaying html in
			// results
	});

 

参考地址:

http://stackoverflow.com/questions/15639184/cant-select-item-in-list-created-by-ui-select2

https://groups.google.com/forum/#!topic/select2/jczxIqRQp_Q

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值