选择二阿贾克斯 - 有选择价值观的问题
问题描述:
我使用选择二如下插件:选择二阿贾克斯 - 有选择价值观的问题
JS
function initAssignmentsAjax() {
$("#assignments").empty();
$("#assignments").select2({
placeholder: "Select an assignment",
allowClear: true,
ajax: {
url: "/Home/GetAssignments",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: processAssignmentsResult,
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work TUTAJ WCHODZI PO assignmentsTemplateSelectionHandler
minimumInputLength: 3, //1
templateSelection: assignmentsTemplateSelectionHandler,
templateResult: assignmentsTemplateResultHandler
})
}
function processAssignmentsResult(data, params) {
var json = JSON.parse(data.Data);
var x = $.map(json, function (item) {
return {
text: item.ProjectNumber + ' : ' + item.BatchName,
children: item.ChildItems,
};
})
return { results: x };
}
HTML
<select id="assignments" style="width: 500px;" ></select>
当我键入它工作正常UI中的值 - 它将Ajax查询发送给控制器,最后呈现控件中的值。
我还增加了以下功能(基于How to programmatically inject search queries into Select2 v4?)到programaticly输入值到搜索
function selectAssignments(term) {
$("#assignments").empty();
var assignmentElementControl = $("#assignments");
assignmentElementControl.select2('open');
// Get the search box within the dropdown or the selection
// Dropdown = single, Selection = multiple
var $search = assignmentElementControl.data('select2').dropdown.$search || assignmentElementControl.data('select2').selection.$search;
// This is undocumented and may change in the future
$search.val(term);
$search.trigger('keyup');
}
当我重新加载页面,并利用浏览器控制台这个函数(或者其绑定到UI的一些按钮),它也很好。 但是,当我第一次尝试通过在Select2控件(此传递)中输入进行搜索时停止工作,但是当我尝试使用此函数时,它不会从Select2控件运行ajax搜索查询(它打开搜索列表,显示输入的查询,但不火ajax)。那么,使用Select2用户界面搜索的功能是否会破坏此功能?
答
在你的函数selectAssignments()
尝试触发select2
的change
:
$search.val(term);
$search.trigger('keyup');
$search.trigger('change'); //Here
我尝试之前 - 无济于事。但谢谢你的回复 – user3057544