Jquery 捕获生成表单的提交,以便用户在div中看到处理后的结果
用户单击菜单,并使用以下代码,将菜单Jquery 捕获生成表单的提交,以便用户在div中看到处理后的结果,jquery,ajax,bind,document-ready,Jquery,Ajax,Bind,Document Ready,用户单击菜单,并使用以下代码,将菜单$.load()s链接到它的内容: $(function() { $('#menu a').click(function() { $('#content').load(this.href); return false; }); }); 好的,现在表单已经加载。还有一个问题。提交表单时,结果不应将我们带到真正的操作地址。因此,我使用以下代码: $('#content').on('submit', functi
$.load()
s链接到它的内容:
$(function() {
$('#menu a').click(function() {
$('#content').load(this.href);
return false;
});
});
好的,现在表单已经加载。还有一个问题。提交表单时,结果不应将我们带到真正的操作
地址。因此,我使用以下代码:
$('#content').on('submit', function() { // catch the form's submit event
alert('begin');
$.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..
alert('aaaa');
$('#content').html(response); // update the DIV
}
});
return false; // cancel original event to prevent form submitting
});
不幸的是,上的未被调用,并且警报('begin')代码>不工作
多亏了我才进入了代码的第一个和平期,而不是在$(document).ready(function(){})代码>并且它工作得非常完美,但是如果没有准备好文档,第二个代码就无法工作
但是为什么呢?我不知道
现在有效的最终代码如下所示:
$(document).ready(function()
{
$('#content').on('submit', 'form', function() { // catch the form's submit event
alert('begin');
$.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..
$('#content').html(response); // update the DIV
}
});
return false; // cancel original event to prevent form submitting
});
});
谢谢你们的尝试。你们尝试过:$(#content')。关于('submit','form',function(){@jbl否,谢谢。Iwill@jbl不幸的是没有运气。无论如何谢谢你:)
请发布加载()产生的标记的相关部分调用。没有什么特别的。事实上,它是一个
,每次单击新菜单项时都会更改(因为在我编写的第一个代码中解释了load
)“但是为什么?我不知道。”我想这是因为该脚本位于div内容的html标记之前。这是.ready()的要点。代码似乎有两个问题(如果没有on(…'form'…)@jbl是的,你是对的。如果不将'form'
作为第二个参数传递,代码就无法工作。同时感谢你关于$(文档)的演讲。ready()