Javascript.RU

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

Проблема с Ajax в связке с динамическими инпутами
Добрый вечер уважаемые гуру JS. Нужна ваша помощь, так как мне не хватает то ли мозгов то ли знаний! Есть js функция динамического создания полей для выбора файлов, также имеется ajax функция для загрузки файла на сервер. Если использовать простой инпут( т.е не динамически созданный функцией) то все срабатывает на ура. Но как только я создаю этот инпут на лету аякс не срабатывает, мало того даже не появляется меню выбора файла. Подскажите в чем проблема.
Вот код:
1) ajaxFunction использую библиотеку AJAX Upload ( http://valums.com/ajax-upload/ )
new AjaxUpload('#button-upload', {
    action: 'index.php?route=catalog/download/upload&token=<?php echo $token; ?>',
    name: 'file',
    autoSubmit: true,
    responseType: 'json',
    onSubmit: function(file, extension) {
        $('#button-upload').after('<img src="view/image/loading.gif" class="loading" style="padding-left: 5px;" />');
        $('#button-upload').attr('disabled', true);
    },
    onComplete: function(file, json) {
        $('#button-upload').attr('disabled', false);
 
        if (json['success']) {
            alert(json['success']);
 
            $('input[name=\'filename\']').attr('value', json['filename']);
        }
 
        if (json['error']) {
            alert(json['error']);
        }
 
        $('.loading').remove();
    }
});


2) генерация динамических инпутов
var attachment_row = <?php echo $attachment_row; ?>;
function addAttachment() {
    html  = '<tbody id="attachment-row' + attachment_row + '">';
     html += '  <tr>';
         html += '<td><a id="button-upload" class="button">'+"<?php echo $button_upload;?>"+'</a></td>'; 
     html += '  </tr>';
        html += '</tbody>';
    $('#attachment-row' + attachment_row + ' .date').datepicker({dateFormat: 'yy-mm-dd'});
    attachment_row++;
}


Если просто добавить инпут в хтмл вот таким образом
<a id="button-upload" class="button"><?php echo $button_upload; ?></a>

то файл загружается без проблем.

Последний раз редактировалось rgsdate, 04.08.2013 в 22:01.
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2013, 16:45
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

Если "инпутов" несколько, они у вас будут иметь одинаковый id:
html += '<td><a [B]id="button-upload"[/B] class="button">'+"<?php echo $button_upload;?>"+'</a></td>';

Поскольку элементы создаются динамически, стоит сделать как-нибудь так:
function ajaxUp(elId) {
  new AjaxUpload(elId, {
   ...
  });
}
function addAttachment() {
  html += '<td><a id="button-upload'+attachment_row+'" class="button">'+"<?php echo $button_upload;?>"+'</a></td>';
  ajaxUp('#button-upload'+attachment_row);
});
Ответить с цитированием
  #3 (permalink)  
Старый 13.08.2013, 16:16
Новичок на форуме
Отправить личное сообщение для rgsdate Посмотреть профиль Найти все сообщения от rgsdate
 
Регистрация: 04.08.2013
Сообщений: 2

Спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax чат - проблема useruser AJAX и COMET 15 24.05.2014 21:58
проблема в json & ajax okapo Работа 4 02.05.2013 20:56
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
ajax чат проблема с записью сообщения в базу данных mysql. Niksik AJAX и COMET 4 15.01.2012 14:04
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24