【发布时间】:2021-12-28 22:02:28
【问题描述】:
我想获取搜索查询。但我不知道如何获取搜索查询。
这不起作用:
var term = $selectField.data("select2").dropdown.$search.val();
在我的代码中,我试图在 formatResult 部分中获取搜索查询。但是变量项是未定义的。你能告诉我我做错了什么吗?
$selectField.select2({
width: '500px',
formatResult: function(data) {
var term = $selectField.data("select2").dropdown.$search.val();
var text = data.text;
if (text.includes("/")){
var repository = getBranchAndRepositoryFromDevLine(text)[0];
var branch = getBranchAndRepositoryFromDevLine(text)[1];
var $result = $('<span/>',{
class: "branch",
text: branch
}).add($('<span/>',{
class: "repository",
text: repository}));
return $result;
} else{
var $result = $("<span></span>");
$result.text(text);
return $result;
}
},
formatSelection: function(data) {
var text = data.text;
if (text.includes("/")){
var branch = getBranchAndRepositoryFromDevLine(text)[1];
return branch;
}
return text;
},
ajax: {
url: "/rest/solution-delivery/1.0/branch/branch-picker/project-branches",
cache: false,
dataType: 'json',
data: function (params) {
return {
projectId: projectId,
query: params,
isCommitAllowed: true
};
},
results: function (data, params) {
return {
results: data.sections
};
},
formatNoMatches: function formatNoMatches(query) {
return "No matches found";
}
}
})
【问题讨论】:
-
我创建了一个快速测试,您提到的代码 sn-p 正确检索了搜索词 jsfiddle.net/5wj62zyo(附加到结果的词只是为了演示)。您是在使用旧版本的 select2,还是在上述代码之外更改变量 $selectField?
-
是的,我使用的是旧版本的 select2,这种方法对我不起作用。但我找不到其他解决方案。
-
感谢您的澄清和对 Stack Overflow 的热烈欢迎。我添加了一个基于 select2 v3.5 的答案
标签: javascript jquery jquery-select2