我在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加载
任何想法?
感谢
答案 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) {});