根据搜索查询更改远程 url
Change remote url based on search query
我有一个 select2 字段,它正在从远程 api 检索数据。我可以让它工作。我想做的是根据用户输入的内容更改遥控器 url。例如,如果键入的前两个字母是 "AA",则使用 url 进行搜索,当前两个字符为“88”时,则使用另一个 url.
进行搜索
到目前为止,这是我的代码:
this.selector.select2({
minimumInputLength: 2,
ajax: {
url: function(param){return 'http://localhost:3000/suggestions?&'},
dataType: 'json' ,
data: function (params) {
var query = {
search: params.term,
}
return query;
},
processResults: function(data) {
var results = [];
$.each(data, function (index, search) {
results.push({
id: search.id,
text: search.val
});
});
return {
"results":results
};
},
},
width: 'resolve',
});
我已经看过但找不到在键入(搜索)时触发的事件。
根据 docs 传递给 url 回调的 params 参数与数据回调中的相同。因此,您可以将代码重写为:
this.selector.select2({
minimumInputLength: 2,
ajax: {
url: function (params) {
var firstTwoLetters = params.term.slice(0, 2);
if (firstTwoLetters == '88') {
return 'some url';
} else if (firstTwoLetters == 'AA') {
return 'another url'
} else {
return 'http://localhost:3000/suggestions?&'
}
},
dataType: 'json',
data: function (params) {
var query = {
search: params.term,
}
return query;
},
processResults: function (data) {
var results = [];
$.each(data, function (index, search) {
results.push({
id: search.id,
text: search.val
});
});
return {
"results": results
};
},
},
width: 'resolve',
});
希望我正确理解了您最后的请求。
oninput
事件在您键入时发生。
注意:我宁愿评论它而不使用 Answer,但是,我的代表少于 50。
我有一个 select2 字段,它正在从远程 api 检索数据。我可以让它工作。我想做的是根据用户输入的内容更改遥控器 url。例如,如果键入的前两个字母是 "AA",则使用 url 进行搜索,当前两个字符为“88”时,则使用另一个 url.
进行搜索到目前为止,这是我的代码:
this.selector.select2({
minimumInputLength: 2,
ajax: {
url: function(param){return 'http://localhost:3000/suggestions?&'},
dataType: 'json' ,
data: function (params) {
var query = {
search: params.term,
}
return query;
},
processResults: function(data) {
var results = [];
$.each(data, function (index, search) {
results.push({
id: search.id,
text: search.val
});
});
return {
"results":results
};
},
},
width: 'resolve',
});
我已经看过但找不到在键入(搜索)时触发的事件。
根据 docs 传递给 url 回调的 params 参数与数据回调中的相同。因此,您可以将代码重写为:
this.selector.select2({
minimumInputLength: 2,
ajax: {
url: function (params) {
var firstTwoLetters = params.term.slice(0, 2);
if (firstTwoLetters == '88') {
return 'some url';
} else if (firstTwoLetters == 'AA') {
return 'another url'
} else {
return 'http://localhost:3000/suggestions?&'
}
},
dataType: 'json',
data: function (params) {
var query = {
search: params.term,
}
return query;
},
processResults: function (data) {
var results = [];
$.each(data, function (index, search) {
results.push({
id: search.id,
text: search.val
});
});
return {
"results": results
};
},
},
width: 'resolve',
});
希望我正确理解了您最后的请求。
oninput
事件在您键入时发生。
注意:我宁愿评论它而不使用 Answer,但是,我的代表少于 50。