我需要在我的django应用程序的模板中使用select2,但它不起作用...我不知道ajax和jquery,所以我希望你们帮助我。
到目前为止我的代码
<script>
$(".js-data-ajax").select2({
ajax: {
headers: {
"Content-Type": "Application/Json",
"Cache-Control": "no-cache"
},
type: "GET",
url: '{{url}}', #the data comes from an external source. #The URL is passed by the view to the template
dataType: 'json',
crossDomain : true,
delay: 250,
data: function (params) {
return {
q: params.term,
access_token: '{{access_token}}'
};
},
processResults: function (data, params) {
var newData = $.map(data.items, function (obj) {
obj.id = obj.id || obj.vehicle.text;
return obj;
});
return {
results: newData,
};
},
},
placeholder: '{{author}}',
}).on("change", function(e) {
var lastText = $(".js-data-ajax option:last-child").text();
document.getElementById('id_book').value = lastText;
});
</script>
此代码有效,但它仍然无法完全满足我的需求: 如您所见,我在视图中获得了{{author}}参数。我需要使用此参数的值初始化select2搜索框,并且可以使用用户键入的信息补充此参数。
例如:
假设通过{{author}}参数传递的值是&#34; Andrew Stuart&#34;。我需要通过名称&#34; Andrew Stuart&#34;来启动搜索框。并且用户可以输入更多信息,例如过滤器。作为:&#34; Andrew Stuart&#34; +无论
必须使用新信息在外部源中进行新搜索。
我尝试过类似的事情:
q: '{{author}}' + params.term,
但不起作用