Перейти к содержимому

Фотография
- - - - -

Работа с элементом, не находящимся в DOM


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
В теме одно сообщение

#1 Radiance

Radiance

    Прохожий

    Топикстартер
  • Участник
  • 4
    35 сообщ.

Отправлено 20 Июнь 2015 в 10:29

Привет всем. Столкнулся с такой проблемой. 

 

Есть куча кнопочек, которые подгружаются по клику по кнопке

 

 function loadBlock(block){
      $('#blockplace').html('<center><h3>Загрузка</h3><img src = "/img/load.gif"></center>');
      var msg = 'method=getblock&block='+block;
      alert(msg);
        $.ajax({
          type: 'POST',
          url: 'ajax.php',
          data: msg,

          success: function(data) {
            $('#blockplace').html(data);
          },
          error:  function(xhr, str){
                alert('Возникла ошибка: ' + xhr.responseCode);
            }
        });
    }

Как я уже сказал - в ответ от сервера приходят формы, и встраиваются на страницу. 

 

Соответственно, они не известны DOM, и не удаётся с ними работать далее - отправить аяксом

 

Сам аякс: 

$(document).ready(function() { 
  $("#form").submit(function(){ 
    preloader();
    var form = $(this); 
    var error = false;
    form.find('input, textarea').each( function(){
      if ($(this).val() == '') { 
        $('#response').html('<div class="alert alert-danger"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Ошибка!</strong> Все поля обязательны для заполнения! </div>'); 
        /*
          <div class="alert alert-danger"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Ошибка!</strong>'+$(this).attr('placeholder')+' </div>
        */
        error = true; 
      }
    });
    if (!error) { 
      var data = form.serialize();
      $.ajax({
         type: 'POST', 
         url: 'ajax.php', 
        // dataType: 'json', 
         data: data, 
           beforeSend: function(data) { 
                form.find('input[type="submit"]').attr('disabled', 'disabled'); 
              },
           success: function(data){ 
              if (data['error']) { 
                $('#response').html(data); 
              } else { 
                $('#response').html(data); 
              }
             },
           error: function (xhr, ajaxOptions, thrownError) { 
                alert(xhr.status); 
                alert(thrownError); 
             },
           complete: function(data) { 
                form.find('input[type="submit"]').prop('disabled', false); 
             }

           });
    }
    return false; 
  });
});

Пытался обернуть аякс в 

$(document).on('submit', '#form', function(){


}

Но это результатов не дало. 

 

Товарищи, кто может объяснить, как можно выкрутиться из данной ситуации? Желательно, с примерами. 


  • 0

Спонсор

#2 Radiance

Radiance

    Прохожий

    Топикстартер
  • Участник
  • 4
    35 сообщ.

Отправлено 20 Июнь 2015 в 15:03

Как ни странно, но 

$(document).on('submit', '#form', function(){
 ....
 
}

Всё таки помогло. 

Но теперь, при отправке формы, не могу забрать из инпутов данные через serialize(); 


  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей