Я использую функцию автозаполнения из jQuery, и у меня небольшая проблема. У меня есть элемент div
с некоторым текстом и переменным количеством полей ввода, которые имеют функцию автозаполнения. Когда пользователь нажимает на текст в элементе div
, поля ввода удаляются. Нажатие на текст переключает между отображением полей ввода и не отображением полей ввода. При каждом щелчке текста вызывается php-скрипт, который возвращает новый HTML-текст для элемента div
.
Входы автозаполнения создаются с помощью php-кода, подобного следующему:
php код
echo "<id='a' value='Smith' autocomplete='off'>";
echo "<script type=\"text/javascript\">$('a').autocomplete('do_name_lookup.php',{minChars:3,max:999});</script>";
echo "<script type=\"text/javascript\">$('a').result(function(event, data, formatted) {alert(data[0])});</script>";
На статической веб-странице два элемента script
отображаются в функции "$(document).ready
". Однако, поскольку моя страница динамична, поля ввода создаются спустя долгое время после срабатывания $(document).ready
. Поэтому я должен выполнить код javascript сразу после того, как каждое из полей ввода сделано. Эта настройка работает нормально при первом выполнении приведенного выше кода php, но при втором выполнении кода функция автозаполнения исчезает.
Может кто-нибудь объяснить мне, почему это происходит и как обойти это? Я подозреваю, что я объявляю переменную с одним и тем же именем несколько раз, и это создает конфликт некоторого типа.