嘿伙计们和女孩们,
我有一个表单,我想使用AJAX提交。对于回调函数,基本上我想要发生的是,表单元素消失(.hide)并被div元素替换(将成功或类似的东西)。然后我希望该函数暂停5秒钟,然后重定向到不同的URL。
AJAX请求成功提交(因为我收到一封电子邮件到我应该指定的地址),但回调函数没有正确执行。有什么建议吗?
$(document).ready( function () {
var $form = $('form');
function register($form) {
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize(),
cache : false,
dataType : 'json',
contentType: "application/json; charset=utf-8",
success: function(data){
$("#mc-embedded-subscribe-form").hide("slow");
$("#form").html('<div class="some-class">Some text that shows up upon successful AJAX request</div>')
setTimeout(5000);
$(".button").addEventListener("click", function(){
window.location.href='http://www.neuyear.net/collections/time-domination-products';
})
}
})
}
}
**
更新#1
**
这是我最初加载网站时遇到的唯一错误代码(我听说这些错误只会在开发工具中弹出而不会影响用户?)
但是当我提交表单时,我得到了这个错误代码
我还将我的JavaScript更新为以下代码,从一些发布的人那里获得建议,但仍然没有100%工作
$(document).ready(function() {
var $form = $('form');
$form.submit(function(){
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize(),
cache : false,
dataType : 'json',
success: function(data){
$("#mc-embedded-subscribe-form").hide("slow");
$("#form").html('<div class="some-class">Some text that shows up upon successful AJAX request</div>')
}
});
setTimeout(function(){
window.location.href='http://www.neuyear.net/collections/time-domination-products';
}, 5000)
});
});
乔伊
答案 0 :(得分:2)
setTimeout 用法错误。
见:
$(document).ready( function () {
var $form = $('form');
function register($form) {
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize(),
cache : false,
dataType : 'json',
contentType: "application/json; charset=utf-8",
success: function(data){
$("#mc-embedded-subscribe-form").hide("slow");
$("#form").html('<div class="some-class">Some text that shows up upon successful AJAX request</div>')
setTimeout(function(){
window.location.href='http://www.neuyear.net/collections/time-domination-products';
}, 5000);
}
})
}
});
此外,如果您希望用户单击链接并追求ajax成功,则理想情况下应单独声明以下内容。
$(".button").addEventListener("click", function(){
window.location.href='http://www.neuyear.net/collections/time-domination-products';
})