Javascript 如何在AJAX请求后保持表单的显示

Javascript 如何在AJAX请求后保持表单的显示,javascript,php,ajax,Javascript,Php,Ajax,我有一个小表单,通过AJAX提交。提交后,php echo进入,但表单已消失。但是当显示回显时,表单应该留在页面上。 我该怎么做 $(文档).ready(函数(){ $(“.订阅时事通讯”)。单击(功能(e){ e、 预防默认值(); $('#订阅"时事通讯').val($(this.val()); var data=$(“#订阅”).serialize(); $.ajax({ 键入:“POST”, url:“email_subscribe.php”, 数据:数据, 成功:功能(数据){ $(

我有一个小表单,通过AJAX提交。提交后,php echo进入,但表单已消失。但是当显示回显时,表单应该留在页面上。 我该怎么做

$(文档).ready(函数(){
$(“.订阅时事通讯”)。单击(功能(e){
e、 预防默认值();
$('#订阅"时事通讯').val($(this.val());
var data=$(“#订阅”).serialize();
$.ajax({
键入:“POST”,
url:“email_subscribe.php”,
数据:数据,
成功:功能(数据){
$(“.subscribe_wrapper”).fadeIn(500).show(函数(){
$(“.subscribe_wrapper”).html(数据);
});
}
});
返回false;
});
});

替换此行:

<input class="subscribe_newsletter" id="subscribe_newsletter" type="submit" name="submit" value="Subscribe">

为此:

<button class="subscribe_newsletter" id="subscribe_newsletter" type="button">Subscribe</button>
订阅

type=“button”
将使表单不提交

不确定您的要求,您似乎自己在隐藏表单:
$(“#订阅”).fadeOut(500)。隐藏(…
我已经禁用了这一行,但没有意义…@jeroen我很确定他没有写代码,也不要在表单提交中调用任何东西。它隐藏了表单提交method@derloopkat按钮也有类,所以这应该不是问题,我不明白的是,如果
.subscribe\u wrapper
包含表单并且已经出现,为什么要淡入?为什么在
之后调用
.show()
。fadeIn()
?JavaScript代码是在另一个文件中还是写在脚本标记中?type=“submit”可能会导致意外behaviour@thatoneguy不太可能-他预防了违约并返回false:)你是对的。我一定是瞎了眼,因为我没有注意到e.preventDefault()。我的解决方案是基于缺少e.preventDefault()。没有
e.preventDefault()
AJAX不起作用。但是我确实删除了
返回false
。但是没有任何变化……在表单中,元素
显示:无;
被添加。但是它是在哪里生成的?下次当你想用AJAX发送表单时,不要在表单中放置提交按钮。请注意,标签中的按钮元素充当提交按钮by默认值。您应该明确地说您的按钮不是submit按钮,方法是给它一个类型属性,如下所示: