gpt4 book ai didi

javascript - jQuery - 在 ajax 调用后恢复表单提交

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:07 24 4
gpt4 key购买 nike

是否可以阻止表单提交,然后在 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');
}
});
});
});

编辑:

Stackoverflow 帖子检查了以下代码:

我只是想我会提到我也尝试过这段代码但无济于事。

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;
}
});
});
});

最佳答案

解决方案非常简单,涉及在 .ajax() 中添加 async 并将其设置为 false。此外,我重新编写了提交按钮的代码,而不是在 AJAX 成功通过时提交表单。

这是我的工作代码:

$(document).ready(function() {
var testing = false;
$('#btn-login').on('click', function() {
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
async: false,
success: function(data) {
if (data == 'true')
{
testing = true;
$('form').attr('action', 'https://example.com');
$('form').submit();
}
else
{
alert('Your username/password are incorrect');
}
},
error: function() {
alert('There has been an error, please alert us immediately');
}
});

return testing;
});
});

关于javascript - jQuery - 在 ajax 调用后恢复表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16415740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com