Jquery Автозаполнение циклов - PullRequest
0 голосов
/ 24 августа 2011

Я хочу прикрепить автозаполнение к динамически генерируемым полям ввода.Я могу сделать это с теми, кто генерируется из внешних событий (таких как нажатие кнопки).НО в необходимом случае поля ввода генерируются при событии ONSELECT предыдущего поля ввода, к которому прикреплено автозаполнение.

Другими словами, изначально у меня есть поле ввода (с автокомплетом) на моемстр.Когда опция выбрана (ONSELECT) в нее, он генерирует другое поле ввода.ПРОБЛЕМА. Сгенерированное поле ввода также должно иметь присоединенное автозаполнение, событие ONSELECT которого должно генерировать другое поле ввода, и это должно продолжаться вечно.

Мне в основном нужна логика для этого.Я в порядке с синтаксисом.Просто не знаю, как подойти к проблеме зацикливания.

Я читал здесь другие вопросы, которые требуют того же, но в их случае элементы генерируются извне.Буду очень признателен за любую помощь.Заранее спасибо.


РЕДАКТИРОВАТЬ - Я новичок здесь, не знаю, как разместить код в формате- @ Роб --- Спасибо.Мне понравилась твоя идея.Но я не понял, почему вы использовали .val ('') в конце.Ну, это все еще не работает.Я пробовал и другие похожие способы (например, добавление клонов к родительскому элементу (div # in)).оповещения отображаются при выборе.Это означает, что событие onselect запускается.Вот код -

$.post("returncategory.php",
       {},
            function(data)
            {
                $('.cat').autocomplete({
                    source: data,
                    type:'json', 
                    minchar: 1, 
                    fillin: false,
                    onSelect: function() {
                        //alert($(this).parent().get());
                        //$(this).clone(true, true).appendTo($(this).parent());
                        //$(this).clone(true, true).appendTo('#in');
                        $(this).clone(true, true).insertAfter($(this)).val();
                    }
                });


            },
            "JSON");

Редактировать: исправлено форматирование кода

РЕДАКТИРОВАТЬ: Я нашел решение :) Большое спасибо за ваш вклад Роб !!Вот что я сделал -

$('.cat').live('click', function() {

                $(this).autocomplete({
                url: "returncategory.php",
                type: "json",
                minchar: 1,
                onSuggest: function() {

                },
                onSelect: function() {
                   $('#clicker').click();
                }
            });
            $(this).focus();
     });

$('#clicker').bind('click', function() {
   var newItem = $("<br><br><input class='cat' type='text'name='td_products["+1+"]'/>");
   $('#in').append(newItem);
   newItem.find('input').autocomplete({
                url: "returncategory.php",
                type: "json",
                minchar: 1,
                onSuggest: function() {

                },
                onSelect: function() {
                   $('#clicker').click();
                }
            });

});

PS Я очень счастлив.И теперь я также знаю, как разместить здесь отформатированный код.Спасибо!

1 Ответ

0 голосов
/ 24 августа 2011

Я бы сказал, что при выборе, вы должны получить ссылку jQuery на текущий ввод, затем сделать $this.clone(true, true).insertAfter($this).val('')

http://api.jquery.com/clone/

...