2009-09-16 53 views
0

我有三种形式,并使用这个jQuery功能阿贾克斯成功响应负载的div

$('form').submit(function() { 
    $.ajax({ 
     type: $(this).attr('method'), 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     success: function(response) { 
      $('#setInfo').fadeOut('500').empty().fadeIn('500').append(response); 
     } 
    }); 
     return false; 
    }); 

提交表单DATAS,但这个功能我停留在装载在一个特定的div的响应。

我发送的数据总是有行动=电子邮件行动=设置等取决于形式。

所以我怎么可以使用它来加载设置在另一个div和电子邮件中的另一个div和所有其他默认在当前div的响应。

谢谢。

回答

0

您可以在通过AJAX提交请求前使用JavaScript变量来捕获预期的目标,然后使用该变量的内容来确定请求返回时要填充的DIV。

$('form').submit(function() { 
    var target = $('#action').val(); 
    $.ajax({ 
     type: $(this).attr('method'), 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     success: function(response) { 
      var div = $('#setInfo'); 
      if (target == 'settings') { 
       div = $('#settings'); 
      } 
      else if (target == 'email') { 
       div = $('#email'); 
      } 
      div.fadeOut('500').html(response).fadeIn('500'); 
     } 
    }); 
     return false; 
}); 

注意我也改变它以在响应之前设置HTML,以避免它闪烁的可能性。

+0

你听错了。通过数据我的意思是data:action = email&user = name ...等等 – Shishant 2009-09-16 12:50:45

+0

鉴于你正在序列化表单,需要一个名为“action”的输入,它的值用于确定加载哪个DIV。我不知道你会如何填充这个表单参数给你的代码。 – tvanfosson 2009-09-16 13:28:35

0

添加的目标的ID来,然后

var target = $(this).find('#target').val(); 

以后使用tvanfossons代码加载