我发现,在这个网站的方式提交POST
形式,而不必离开页面。 在该脚本,他们把表单的提交后如何拥有的功能进行说明。 这里的脚本是什么样子:
$(document).ready(function(){
$form = $('form');
$form.submit(function(){
$.post($(this).attr('action'), $(this).serialize(), function(response){
},'json');
return false;
});
});
他们说,之间function(response){
和},'json');
您可以指定其他JavaScript表单的提交后发生类似的警报等。 我试过了
$(document).ready(function(){
$form = $('form');
$form.submit(function(){
$.post($(this).attr('action'), $(this).serialize(), function(response){
$('form').hide();
},'json');
return false;
});
});
不幸的是,这是不行的,任何人可以告诉我为什么? 我已经设置了的jsfiddle 。 请帮忙。 谢谢。
使用$。员额中,“功能(响应)”只能称为一个成功的结果后,所以你一直在误导这个函数中做工作,而服务器处理请求。
为了将请求发送到服务器后继续进行处理,将$(“形式”)的.post的$调用后隐藏():
$form.submit(function(){
$.post(
$(this).attr('action'), $(this).serialize(),
function(response){
}
,'json'
);
$('form').hide();
return false;
});
问题:
- 设置Javascript变量
form
,而不是$form
。 然后用它作为jQuery的$(form)
。 - 的情况下
$(this).attr('action')
是$.post()
的回调,而不是形式。 解决方法: $(form)
,而不是$(this)
。
解:
$(document).ready(function(){
form = $('form');
$(form).on('submit', function() {
$.post($(form).attr('action'), $(this).serialize(), function(response) {
$('form').hide();
},'json');
return false;
});
});
当形式改变为你拨弄工作得很好
<form action="#" method="post">
并在文档http://api.jquery.com/jQuery.post/表明,这是一个有效的语法和http://www.johnnycode.com/blog/2010/04/08/jquery-form-serialize-犯规-后提交和按钮值,咄/也是一个正在运行的样品。 如果它不工作对你的话,因为傻,因为这是,你在你的页面的jQuery的参考?