Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.09.2012, 21:49
Новичок на форуме
Отправить личное сообщение для TuncaH Посмотреть профиль Найти все сообщения от TuncaH
 
Регистрация: 15.11.2011
Сообщений: 1

AutoComplete & dynamic table
Доброго времени суток. Решил в форме реализовать AutoComplete бокс и начал использовать плагин http://bassistance.de/jquery-plugins...-autocomplete/.
Все хорошо, но таблица у меня динамическая. Таблица реализована по методу поиска тегов <tr>, копируется содержимое и добавляется ко всем атрибутам индекс.
Если у нас к примеру первый рядок таблицы содержал такие инпуты:
<tr>
<td>
  <input type="text" name="last_name" id="last_name">
</td>
<td>
  <input type="text" name="first_name" id="first_name">
</td>
<td>
  <input type="text" name="middle_name" id="middle_name">
</td>
</tr>


То после нажатия кнопки AddRow, будет добавлен рядок с такими инпутами:
<tr>
<td>
  <input type="text" name="last_name1" id="last_name1">
</td>
<td>
  <input type="text" name="first_name1" id="first_name1">
</td>
<td>
  <input type="text" name="middle_name1" id="middle_name1">
</td>
</tr>


Ну и так далее...
Допустим, повесим на last_name, AutoComplete.
Ну ничего сложного, по сути:
$(function(){
$('.col1_1').autocomplete("list_user.php", {
selectFirst: false,
delay: 300
});
});

Соответственно не забываем прописать в инпуте с именем last_name, вот такой класик: class="col1_1"

AutoComplete работает, но только в первом рядке, это и понятно ибо мне нужно повесить в функцию AddRow выполнение autocomplete. И решил я повесить это все на each:
$(function AddRow(){
...bla bla bla...
$('col1_1').each('click', function() {
  $(this).autocomplete("list_user.php", {
            selectFirst: false,
            delay: 300
            });
});
...bla bla bla...
});


И все работает, НО! Допустим мы ввели last_name, потом добавляем второй last_name1, и по привычке клацаем два раза по второму инпуту(либо просто один рас, а потом клавишу вниз или вверх - не важно), и видим что вызывается 2 autocomplete, как last_name, так и last_name1. При добавлении следующей строки(рядка, последующего вызова функции AddRow), мы получим аналогичную кратину - вызов двух autocomplete - last_name и last_name2. И так далее...

Как сделать "destroy" autocomplete в первой строчке(рядке), в этом плагине?
Знаю что в JQuery UI есть такая функция, но он мне не подходит.
Я уже думал удалить все атрибуты с первого инпута, но он зараза автоматом прописывает свой класс вызова. Такое ощущение что ему нужно запретить вызов автокомплита по индексу 0 в состоянии unfocus. Только как это сделать, увы пока не знаю... Есть идейки?
Завтра утром выложу весь код, для большей ясности картины.

Выкладываю обещанный код:
http://jsfiddle.net/uvMGH/4/

Только autocomlete не получилось использовать, поэтому заюзал autocompleteArray с того же плагина. Попробуйте добавить 3 строки и заполнить каждую по очереди в столбце "Учебное заведение". При заполненнии 3-ей обратите внимание на 1-ю, как только набираешь букву "М" в 3-ей ячейки, первая тоже вызывает autocompleteArray. Как от этого избавится?

Последний раз редактировалось TuncaH, 19.09.2012 в 10:27.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
z-index и table it_tech Элементы интерфейса 25 29.05.2012 14:14
очередной autocomplete dr83 jQuery 1 30.07.2011 00:40
ALTER TABLE ADD korner Серверные языки и технологии 3 13.07.2011 15:25
Чем занимаются JS-программеры. JSTalker Оффтопик 69 02.02.2011 10:18
autocomplete и scrollbar artu-rich jQuery 1 26.06.2009 13:03