mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-12-24 00:12:23 +00:00
34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
|
$(document).ready(function () {
|
||
|
$(".autocomplete").keyup(function(e) {
|
||
|
let target = $("#" + e.target.id);
|
||
|
let prefix = target.attr("id");
|
||
|
let api_url = target.attr("api_url");
|
||
|
let api_url_suffix = target.attr("api_url_suffix");
|
||
|
if (!api_url_suffix)
|
||
|
api_url_suffix = "";
|
||
|
let name_field = target.attr("name_field");
|
||
|
if (!name_field)
|
||
|
name_field = "name";
|
||
|
let input = target.val();
|
||
|
|
||
|
$.getJSON(api_url + "?format=json&search=^" + input + api_url_suffix, function(objects) {
|
||
|
let html = "";
|
||
|
|
||
|
objects.results.forEach(function (obj) {
|
||
|
html += li(prefix + "_" + obj.id, obj[name_field]);
|
||
|
});
|
||
|
|
||
|
$("#" + prefix + "_list").html(html);
|
||
|
|
||
|
objects.results.forEach(function (obj) {
|
||
|
$("#" + prefix + "_" + obj.id).click(function() {
|
||
|
target.val(obj[name_field]);
|
||
|
$("#" + prefix + "_pk").val(obj.id);
|
||
|
});
|
||
|
|
||
|
if (input === obj[name_field])
|
||
|
$("#" + prefix + "_pk").val(obj.id);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|