Я пишу функцию javascript в php файле для выполнения автозаполнения. я должен принимать входные данные из значения div, где это похоже
value1
value2
...
Значение входного div является динамическим и изменяет событие щелчка некоторого текста. поэтому каждый раз, когда пользователь щелкает эти значения, я вызываю функцию с именем test()
которая перезагружает функцию автозаполнения.
Я пишу следующий код, чтобы получить значение и после редактирования отправки в качестве источника функции автозаполнения.
Select Value: <input id="autocomplete">
<script type="text/javascript">
function test()
{
var div_values = document.getElementById("id_div_values").innerHTML;
var div_val_arr = div_values.split("</li>");
var search_val ="[";
for (var j = 0; j < div_val_arr.length-1; j++)
{
search_val = search_val+"\""+div_val_arr[j].replace("<li>","")+"\"";
}
search_val = search_val+"]";
$("#autocomplete").autocomplete({
source: search_val
});
}
</script>
но он не работает. Я проверил значение div, которое он правильно выполнил, и сформировал его в массиве, но он не работает. если я поставлю источник как
source: ["value1","value2","value3","value4"];
то он работает отлично. я не получаю, где я делаю ошибку. Заранее благодарим за ваши ценные предложения.
Javascript
$(document).ready(function() {
var div_val_arr = [];
$("#id_div_values li").each(function() {
div_val_arr.push($(this).text());
});
$('#autocomplete').on('focus click touchstart',function() {
$( "#autocomplete" ).autocomplete({
source: div_val_arr
});
});
});
HTML
<div id="id_div_values">
<ul>
<li>some value</li>
<li>another value</li>
<li>value3</li>
<li>value4</li>
<li>value5</li></ul>
</div>
<input type="text" title="search" id="autocomplete">
скрипка http://jsfiddle.net/arfrbzbz/1/
Сначала вам не хватает "," (запятая) в следующем коде
search_val = search_val+"\""+div_val_arr[j].replace("<li>","")+"\"";
Выше кода сделает массив следующим:
search_val =["value1""value2""value3""value4"];
Добавьте запятую и убедитесь, что она будет генерировать массив следующим образом.
search_val =["value1","value2","value3","value4"];
Вы можете проверить, назначив div_val_arr в качестве источника для вашего автоматического завершения
$("#autocomplete").autocomplete({
source: div_val_arr
});