Javascript 如何使用Ajax提交表单并获得一些文本
这是我的代码:Javascript 如何使用Ajax提交表单并获得一些文本,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,这是我的代码: $(“form.signupform”).submit(函数(e){ e、 预防默认值(); var data=$(this.serialize(); var url=$(this.attr(“操作”); var form=$(this);//添加此行 $.post(url、数据、函数(数据){ $(form.children(“.signupresult”).html(data.signupresult); $(form).children(“.signupresult”).
$(“form.signupform”).submit(函数(e){
e、 预防默认值();
var data=$(this.serialize();
var url=$(this.attr(“操作”);
var form=$(this);//添加此行
$.post(url、数据、函数(数据){
$(form.children(“.signupresult”).html(data.signupresult);
$(form).children(“.signupresult”).css(“不透明”,“1”);
});
返回false;
});代码>
您必须告诉您的请求您希望JSON作为返回。Else data.signupresult没有意义;数据被视为一个字符串
我总是使用$.ajax,从不使用$.post;我发现添加选项更容易
$.ajax({
url: $(this).attr("action"),
dataType: 'JSON',
type: 'post',
data: $(this).serialize(),
success: function(data) {
...
}
})
看起来您可能在jQuery submit watcher中缺少了一个e.preventDefault()
,请注意,您应该执行var form=$(此操作)首先使用code>以便可以使用该变量,而不是重复$(this)jQuery构造函数。在你的帖子中,从表单中删除$()。它已经是jquery对象了。它与一个内联的onsubmit
混合在一起。我建议删除它,只需将e.preventDefault()
添加到jQuery提交函数中即可。修复我们建议的几个调整,这样就不会出现表单只提交一次的情况。使用浏览器开发工具,特别是“网络”选项卡,观看“XHR”活动。会发生什么?又发了吗?如果是,反应如何?@Taplar-同意!我在编辑你提交的评论,因为我同意,wierdness可能是问题的根源。