2015-09-14 2 views
0

У меня есть эта часть кода. этот код должен находиться внутри каждой новой загруженной страницы ajax. потому что, если его наружу, он не будет работать.Ajax submit script global

пример:

<div> Loaded form here , including the script </div> <- works 
<div><div> Loaded form here , </div> script is here </div> <- do not work 

Q: Как я могу сделать это в состоянии работать без необходимости ставить этот скрипт на каждый из моих АЯКС страниц?

код:

<script> 
    $("form").on("submit",function(e) { 

     e.preventDefault(); 


     var btn= $(this).find("input[type=submit]:focus"); 
     $('<input>').attr({ 
      type: 'hidden', 
      name: btn.attr('name'), 
      value: btn.val() 
     }).appendTo('form'); 

     action = $("form").attr('action'); 
     $.post(action, $(this).serialize(), function(data) { 
      $(".main_center").html(data); 

     }); 
     return false; // prevent normal submit 
    }); 

</script> 

если сценарий находится в загруженном файле, он будет proccess правильно. но если это не так, он просто обновит страницу. потому что загруженный файл не найдет скрипт, который будет использоваться.

+0

ваш вопрос трудно расшифровать ... что вы не хотите делать? –

+0

Я думаю, это вопрос получения элемента «div», а не AJAX !! – MarmiK

+0

Я предполагаю, что вы не хотите, чтобы каждый '

' связывался с событием 'submit'? Решение может быть нацелено на 'form.specific-class', чтобы избежать этого. – romuleald

ответ

0

Это ваш скрипт в div .main_center? Если это так, то возвращенные данные заменят его - поэтому вам нужно включить свой скрипт в данные, возвращаемые при вызове ajax.

Включение сценария в общий файл js, включенный в ваш нижний колонтитул (я сделал это сам), поэтому ошибка почти наверняка связана со структурой вашего документа и тем, как вы заменяете контент.

Вам нужно будет увидеть больше фактического кода, чтобы правильно посоветовать вам.

[Edit] Вы пробовали

<div class="main_center"> 
    <div><form> ....</form></div> 
</div> 
<script> 
    $(document).on("submit","form", function(e){ ... }); 
</script> 

Это связывает сценарий документа и называет его всякий раз, когда форма была отправлена, в том числе формы загружены после того, как страница сгенерирована

+0

скрипт находится в div .main_center при работе. , но мне бы хотелось, чтобы скрипт был за пределами .main div, потому что он будет использоваться всеми субсайтами. Когда я беру скрипт за пределами .main_center div, он не будет работать. – maria

+0

Позволяет просмотреть после загрузки. это может быть так? – maria