是否可以停止表单提交,然后从ajax调用成功内部重新提交相同表单?jQuery - 在ajax调用后恢复表单提交
目前它获得成功位,但它不会重新提交应提交并将用户重定向到http://example.com网站的表单。
非常感谢您的帮助提前
如果这是不可能做这种方式,有没有得到它的工作的另一种方式?
$(document).ready(function() {
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
success: function(data) {
if (data == 'true')
{
$('form').attr('action', 'http://example.com');
$('form').unbind('submit').submit(); // mistake: changed $(this) to $('form') - Problem still persists though it does not resubmit and redirect to http://example.com
}
else
{
alert('Your username/password are incorrect');
}
},
error: function() {
alert('There has been an error, please alert us immediately');
}
});
});
});
编辑:
帖子#1签出了下面的代码:
我只是觉得我有口难言也三编辑这段代码无济于事。
var ajaxSent = false;
$(document).ready(function() {
$('form').submit(function(e) {
if (!ajaxSent)
e.preventDefault();
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
success: function(data) {
if (data == 'true')
{
alert('submit form');
ajaxSent = true;
$('form').attr('action', 'http://example.com');
$('form').submit();
return true;
}
else
{
alert('Your username/password are incorrect');
return false;
}
},
error: function() {
alert('There has been an error, please alert us immediately');
return false;
}
});
});
});
我也试过这段代码,没有任何运气。
$(document).ready(function() {
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
success: function(data) {
if (data == 'true')
{
$('form').attr('action', 'http://example.com');
$('form').unbind('submit').submit();
return true;
}
else
{
alert('Your username/password are incorrect');
return false;
}
},
error: function() {
alert('There has been an error, please alert us immediately');
return false;
}
});
});
});
这将最有可能提交表单无限。起初,阿贾克斯提交表格,在成功时,它再次通过相同的阿贾克斯,并再次成功......然后再次......然后再次。 – SachinGutte 2013-05-07 09:39:51
@SachinG为什么?他们在第二次提交表单之前删除(以及试图删除)'submit'事件处理程序。 – 2013-05-07 09:40:39
@AnthonyGrist但解绑后,相同的处理程序被调用,因为提交后面是它。不是吗?或者我错了? – SachinGutte 2013-05-07 09:42:38