- Я хочу создать окно поиска автозаполнения. он получает JSON и отправляет их в HTML5
<datalist>
из<option>
s.
Он отлично работает, но он не может использовать пробелы в значениях! поэтому он просто возвращает первое слово. например, если jresults.name
«отпускает» - я получаю только «позволяет».Как использовать Ajax и структуру HTML для эхо-автозаполнения?
Каков наилучший способ сделать это?
Эта часть:
$("#prod_name_list").children().remove();
не позволяет мне выбрать вариант из списка. потому что он удаляет все в нем, когда я «keyup», поэтому мне нужно другое решение для этого.Вторая часть после отправки формы я хочу получить идентификатор выбранного объекта. (
jresults.id
), и я не уверен, как получить его с помощью submit.
МОЙ КОД:
JS часть:
$("#prod_name").bind("keyup", function(e) {
if (e.which <= 90 && e.which >= 48){
$("#prod_name_list").children().remove();
var prod_name = $("#prod_name").val();
$.ajax({
method: "POST",
url: "<?php echo site_url('kas/search_prod_name'); ?>",
data: ({ "prod_name": prod_name }),
success: function (result){
var jresults = JSON.parse(result);
console.log("jresults: "+jresults);
var lng = jresults.length;
console.log("lng: "+lng);
for (var i=0; i<lng; i++) {
if (jresults.hasOwnProperty(i)) {
console.log("name: "+jresults[i].name);
$("#prod_name_list").append("<option name=\"prod_id\" id="+jresults[i].id+">"+jresults[i].name+"</option>");
}
}
}
});
}
});
HTML часть (с использованием CodeIgniter Синтаксисы для формы:
<?php
$attributes = array('class' => 'prod_name', 'id' => 'prod_name', 'name' => 'prod_name', 'list' => 'prod_name_list');
echo form_input('prod_name', 'prod Name', $attributes);
?>
<datalist id="prod_name_list">
</datalist>
Я предлагаю вам изучить https://jqueryui.com/autocomplete/ Я знаю, что это не ответ на ваш вопрос. Но это поможет вам легко реализовать авто. И он выбрал обработчик событий. При выборе вы можете сохранить идентификатор в скрытом поле. Сейчас я пользуюсь мобильным телефоном и не могу вам помочь. – Mandy
Я не хочу использовать пользовательский интерфейс jQuery. Я не хочу загружать на свой сайт не имеющие права библиотеки только 1 вещь: X –
Вы уже используете JQuery, поэтому дали вам предложение. – Mandy