2012-05-13 3 views
1

Я хочу загрузить evrything на моем веб-сайте внутри div, поэтому я создал функцию для обработки представлений форм, чтобы сделать загрузку действий в одном div, однако проблема заключается в некоторых формах, t имеет действие action="", так как сценарий находится на одной странице, поэтому, когда я отправляю форму, ничего не происходит в div, div, так как я могу справиться с этим в своей функции?

$(document).ready(function() { 
       $('#mydiv').delegate('form', 'submit', function() { // catch the form's submit events inside the div 
    $.ajax({ // create an AJAX call... 
     data: $(this).serialize(), // get the form data 
     type: $(this).attr('method'), // GET or POST 
     url: $(this).attr('action'), // the file to call 
     success: function(response) { // on success.. 
      //$('#mydiv').html(response); // update the DIV 
      $('#mydiv').fadeOut('slow',function() { 
         $('#collabsoft').html(response).fadeIn('slow'); 
       }); 
       // return false; 
} 
    }); 

ответ

1

Вы можете использовать трехкомпонентный если заявление:

url: $(this).attr('action') == '' ? window.location : $(this).attr('action') 
+0

вы не должны делать AJAX звонков на ту же страницу, если вы не можете ориентироваться на конкретные данные в SED страницы. ajax вернет то, что было сделано, поэтому, если вы получите данные с той же страницы, вы также получите такие вещи, как теги заголовков, теги скриптов и т. д. и т. д. –

+2

Это неправда. Вы можете легко создать страницу, которая выплевывает контент, который зависит от того, какие данные вы отправляете на него. – Blender

+0

@Blender вы можете мне сказать, как я могу это сделать? –

Смежные вопросы