Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Autocomplete в динамически созданной форме (https://javascript.ru/forum/events/45965-autocomplete-v-dinamicheski-sozdannojj-forme.html)

Nobas 22.03.2014 15:38

Autocomplete в динамически созданной форме
 
Здравствуйте. не смог я найти чего то подобного. Проблема мне изъела мозг уже.
Я не большой профессионал в вопросе jquery. поэтому строго не судите.
В общем суть в следующем. Есть ряд форм, которые добавляются на страницу динамически:

function creating(){
    var parentElem = document.getElementById('parent');
    var newDiv = document.createElement('div');
    newDiv.innerHTML = '<div class=\'blockadd\'>'+
                '<input class=\'adreceptmax\' type=\'text\' name=\'indigr[]\' autocomplete=\'on\'>'+
            '</div>'+


и так далее

к в форме class=adreceptmax autocomplete прикручен.
на странице есть одно заранее такое созданное поле, и кнопкой создаются новые. в том которое заранее установлено autocomplete работает, а в динамически созданном нет. Подскажите пожалуйста что за беда и где искать проблему.

Erolast 22.03.2014 19:20

Цитата:

jquery
Ну и где ты тут jquery нашел? Это javascript. Jquery вообще - всего лишь набор готовых решений для веб-программиста, написанных на javascript, это ничуть не самостоятельный язык.

Цитата:

на странице есть одно заранее такое созданное поле, и кнопкой создаются новые. в том которое заранее установлено autocomplete работает, а в динамически созданном нет. Подскажите пожалуйста что за беда и где искать проблему.
Потому-что атрибут autocomplete проставляется тегу form, а не input.

BETEPAH 22.03.2014 19:20

Цитата:

Сообщение от Nobas
к в форме class=adreceptmax autocomplete прикручен

Какой из autocomplete прикручиваете? jquery autocomplete? После добавления элемента прикручивайте автокомплит к нему.

Nobas 23.03.2014 19:45

аutocomlete вот этот:
http://ruseller.com/lessons.php?rub=37&id=1336
а как его к новому инпуту прикрутить? я не понимаю. Он же с таким же классом создается.

Nobas 23.03.2014 19:51

Ну и где ты тут jquery нашел?
Сам то autocomplete на jquere написан.
Потому-что атрибут autocomplete проставляется тегу form, а не input.

У меня в инструкции к инпуту надо было прикручивать. Да и как то не логично кажется к форме прикручивать. В форме же много полей. Если я к форме прикручу откуда он узнает в из какого поля надо брать информацию для обработки?

Erolast 23.03.2014 20:40

Цитата:

Сам то autocomplete на jquere написан.

У меня в инструкции к инпуту надо было прикручивать. Да и как то не логично кажется к форме прикручивать. В форме же много полей. Если я к форме прикручу откуда он узнает в из какого поля надо брать информацию для обработки?
Ответить с цитированием Нажмите у нескольких сообщений, и затем - БОЛЬШУЮ кнопку ответить Быстрый ответ на это сообщение
Хм, я подумал, ты про стандартный autocomplete, который как раз формам прописывается.

Если плагин - так проводи заново инициализацию автокомплита при создании нового инпута, просто проставить атрибут тут недостаточно. Самый простой, но не самый хороший вариант - прописать в конце функции
$(".adreceptmax").autocomplete(тут_нужные_данные)

, то есть, инициализация будет проведена над всеми элементами с классом adreceptmax заново. Это самый простой вариант, но, во-первых, не факт, что плагин при этом поведет себя корректно, во-вторых - это может замедлить страницу, если инпутов много и/или если данные для инициализации грузятся с сервера. Вариант посложнее, но лучше - проводить инициализацию именно для вновь создаваемого поля ввода, но для этого надо переписывать код, а для этого хорошо бы увидеть всю функцию.

рони 23.03.2014 20:41

Nobas,
так после создания проинициализируйте плагин на этом инпуте - откуда плагину знать что есть ещё один элемент

Nobas 24.03.2014 15:05

рябата! Спасибо огромное!!! всё получилось! прописал как Erolast посоветовал в функции добавления полей $(".adreceptmax").autocomplete и всё заработало!)


Часовой пояс GMT +3, время: 18:17.