Не срабатывает автокоплит при генерации поля средствами JS
Приветствую всех!
Помогите, пожалуйста, разобраться, почему не срабатывает автокомплит подстановки адресов, если поле генерируется на js. Есть форма с <input name"adres[0]" value"" /> И ссылка <a onclick="copyAddress();">Добавить адрес</a> добавляющая такое же поле, и если добавить поле нажав на эту ссылку, то не срабатывает для добавленного поля автокоплит, но если в html разметить тег поля без генерации на js <input name"adres[1]" value"" />, то во всех полях всё нормально отрабатывает. Причём индексы в названиях полей генерируются правильные. С чем может быть это связано? Весь код html: <html> <head> <title>Автокоплит</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/smoothness/jquery-ui.css" /> <script src="http://api-maps.yandex.ru/2.0-stable/?load=package.full&lang=ru-RU" type="text/javascript"></script> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.min.js"></script> <script src="autocomplete.js"></script> </head> <body> <div class=adres> <div class=row_adres> Адрес: <input id=0 name="adress[0]" type="text" value="" /> </div> </div> <br /> <br /> <a onclick="copyAddress();">Добавить адрес</a> </body> </html> Код autocomplete.js: var search_result = []; $(document).ready(function() { $('.adres').each(function(i, el) { var adress = $(el).find('[name^=adress]'); adress.keyup(function(){ var search_query = $(this).val(); search_result = []; $.getJSON('http://geocode-maps.yandex.ru/1.x/?format=json&callback=?&geocode='+search_query, function(data) { for(var i = 0; i < data.response.GeoObjectCollection.featureMember.length; i++) { search_result.push ({ label: data.response.GeoObjectCollection.featureMember[i].GeoObject.description+' - '+data.response.GeoObjectCollection.featureMember[i].GeoObject.name, value: data.response.GeoObjectCollection.featureMember[i].GeoObject.name.replace('undefined', ''), longlat:data.response.GeoObjectCollection.featureMember[i].GeoObject.Point.pos }); } //подключаем к текстовому полю виджет autocomplete adress.autocomplete({ source: search_result, select: function(event, ui){} }); }); }); $.ui.autocomplete.filter = function (array, term) { return $.grep(array, function (value) { return value.label || value.value || value; }); }; }); }); //копирования поля для дополнительного адреса window.copyAddress = function() { var $firstAddress = $('.row_adres:first'); var $lastAddress = $('.row_adres:last'); var $clone = $firstAddress.clone(); var $remove = $('<div class=""/>'); $clone.find('div').prepend($remove); $clone.find('input').val(''); $lastAddress.after($clone); setTimeout(function() { updateAddressIndex(); }, 0); }; //обновление индексов function updateAddressIndex() { $('.row_adres').each(function(i, el) { var $this = $(el); $this.find('[name^=adress]').attr('name', 'adress[' + i + ']'); }); } |
Не актуально уже, разобрался сам.
|
Часовой пояс GMT +3, время: 02:59. |