jquery,如何使用多个ajax请求?

时间:2011-09-30 08:05:40

标签: jquery ajax

我在xxx.php内有这种情况:

<form id="s">
<input id="q"/>
<input type="submit" href="Search!"/>
</form>
<div id="r"></div>

foo.php内我有另一种形式:

<form id="ss">
<input id="qq"/>
<input type="submit" href="Search!"/>
</form>
<div id="rr"></div>

yyy.php内我有另一种形式:

<form id="sss">
<input id="qqq"/>
<input type="submit" href="Search!"/>
</form>
<div id="rrr"></div>

javascript.js里面我有:

$('#s').submit(function(evt) {
evt.preventDefault();
$.ajax({
url: 'foo.php',
data: {
    query: $('#q').val()
  },
success: function(data) {
    $('#r').html(data);
  }
});
return false;
});

$('#ss').submit(function(evt) {
evt.preventDefault();
$.ajax({
url: 'yyy.php',
data: {
    query: $('#qq').val()
  },
success: function(data) {
    $('#rr').html(data);
  }
});
return false;
});

当我提交第一个表单时,第二个表单加载,所以现在我有2个表单(如预期的那样),但是当我提交第二个表单时,第三个表单不会使用ajax加载,但它会重定向到它通过刷新。

所以基本上我需要做尽可能多的ajax加载

任何想法?

感谢

3 个答案:

答案 0 :(得分:4)

您应该使用.live,因为您要动态添加数据

$('#ss').live('submit', function(evt) {
evt.preventDefault();
$.ajax({
url: 'yyy.php',
data: {
    query: $('#qq').val()
  },
success: function(data) {
    $('#rr').html(data);
  }
});
return false;
});

答案 1 :(得分:2)

对于您动态加载的内容,您需要使用Live事件,以便在您的情况下:

$("#ss").live('submit', function (e) {
   // Code here
});

您只需要将实时事件用于并非总是在DOM中的事物。如果您通过ajax请求页面然后打算使用它们,则需要使用实时事件。

请参阅:http://api.jquery.com/live/ 更多细节

答案 2 :(得分:0)

尝试处理新加载的表单$('#sss').submit(function(evt) {});