0.0.28 upd autocomlitev2.js, almost good

This commit is contained in:
2023-07-20 18:58:12 +03:00
parent fcc685e1cc
commit 57c6badfa9
2 changed files with 23 additions and 11 deletions

View File

@@ -25,32 +25,43 @@ function searchTown(el){
}); });
} }
function selectItemAddrPoint(id, name){
let ap_txt_cont = document.querySelector("#id_from_address_point_txt");
let ap_cont = document.querySelector("#id_from_address_point");
ap_txt_cont.value = name;
ap_cont.value = id;
}
function search(data) { function search(data) {
let ac = document.querySelector("#id_from_address_point") let ac = document.querySelector("#id_from_address_point_txt");
if (ac.value.length > 0) { if (ac.value.length > 2) {
let res_data = data.data let res_data = data.data
var divs = res_data.map(function(r, i) { var divs = res_data.map(function(r, i) {
return '<div class="autocomplete-result" data-index="'+ i +'" data-id="'+ r.id + '">' airport_name = "'"+r.iata_code + " - " + r.name+"'";
return '<div onclick="selectItemAddrPoint('+ r.id+', '+ airport_name +')" class="autocomplete-result" data-index="'+ i +'" data-id="'+ r.id + '">'
+ '<div><b>'+ r.iata_code +'</b> - '+ r.name +'</div>' + '<div><b>'+ r.iata_code +'</b> - '+ r.name +'</div>'
+ '<div class="autocomplete-location">'+ r.city__name +', '+ r.city__country__name +'</div>' + '<div class="autocomplete-location">'+ r.city__name +', '+ r.city__country__name +'</div>'
+ '</div>'; + '</div>';
}); });
divs.attr('data-highlight', selectedIndex);
document.querySelector(".input_list").innerHTML = divs
selectedIndex = -1;
let input_list = document.querySelector(".input_list");
input_list.classList.toggle("show")
input_list.innerHTML = divs
// .html(divs.join('')) // .html(divs.join(''))
// .attr('data-highlight', selectedIndex); // .attr('data-highlight', selectedIndex);
} else { } else {
numResults = 0; numResults = 0;
divs.empty(); let divs = [];
} }
} }

View File

@@ -40,11 +40,12 @@
<div class="from_to_country"> <div class="from_to_country">
<div> <div>
<label for="id_from_address_point">{{ form.fields.from_address_point.label }}</label> <label for="id_from_address_point">{{ form.fields.from_address_point.label }}</label>
<input oninput="searchTown(this)" type="text" name="from_address_point"{% if form.fields.from_address_point.required %} required{% endif %} id="id_from_address_point"> <input type="number" name="from_address_point" id="id_from_address_point" hidden />
<div class="input_list"></div> <input oninput="searchTown(this)" type="text" name="from_address_point_txt"{% if form.fields.from_address_point.required %} required{% endif %} id="id_from_address_point_txt">
<div class="input_list" name="from_address_point_txt"></div>
{% if form.errors and form.errors.from_address_point %} {% if form.errors and form.errors.from_address_point %}
<span>{{ form.errors.from_address_point}}</span> <span>{{ form.errors.from_address_point}}</span>
{% endif %} {% endif %}
</div> </div>
<div> <div>
<label for="id_to_address_point">{{ form.fields.to_address_point.label }}</label> <label for="id_to_address_point">{{ form.fields.to_address_point.label }}</label>