Я пытаюсь использовать LoopJ (http://loopj.com/jquery-tokeninput/demo.html) autocompelte для создания функционального окна поиска. Как вы можете видеть на демонстрационной странице, следующий код запускает автозаполнение:
$(document).ready(function() {
$("#demo-input-pre-populated").tokenInput("tvshows.php", {
searchDelay: 1000,
minChars: 3,
tokenLimit: 1,
prePopulate: [
{id: 9000, name: "Kriss Akabusi"}
]
});
});
Предположим, что вы хотите отправить значение текстового tvshows.php
как запрос GET на tvshows.php
. Поскольку этот код получит только начальное значение текстового поля (при условии id=mytextbox
), я попытался отредактировать этот код, чтобы он удовлетворял моим требованиям при изменении значения текстового поля:
var $elem = $("#demo-input-pre-populated");
$("#mytextbox").on('change', function() {
var country = $.trim(this.value);
$elem.tokenInput("tvshows.php?country=" + country, {
searchDelay: 1000,
minChars: 3,
tokenLimit: 1,
});
});
и он отлично работает. Итак, Какая проблема?
Как вы можете видеть в кодах JavaScript, я удалил prePopulate
второй код JS (prePopulate является значением по умолчанию для окна поиска). Поскольку prePopulate
не будет установлен до тех пор, пока я не изменю значение текстового mytextbox
что-то в него (id = mytextbox
).
Итак, как я мог обрабатывать все эти вещи вместе? Я попробовал разные способы заставить prePopulate
работать до изменения значения текстового поля. Но я еще не успел.
Вы можете использовать функцию onAdd для этого
var $elem = $("#demo-input-pre-populated");
var arr = [];//Array to hold selected values
$("#mytextbox").on('change', function() {
var country = $.trim(this.value);
$elem.tokenInput("tvshows.php?country=" + country, {
searchDelay: 1000,
minChars: 3,
tokenLimit: 1,
prePopulate: arr,
onAdd:function(item)
{
arr.push(item);
}
});
});