$(“#”)。使用Ajax刷新页面提交

不确定是什么问题,因为这段代码在一段时间之前工作正常,我正在尝试使用Ajax提交表单,这是我的代码

Ajax代码

  $(function() { $("#login").submit(function() { $('#signinPane').showLoading(); $("#loginError").hide(); var data = $(this).serializeObject(); $.ajax({ 'type': "POST", 'url': "", 'data':data, 'success': function(result) { } }); return false; }); }); 

HTML代码

 

我的问题是,当我点击提交按钮时,页面正在刷新,并且根本没有提交Ajax调用。 不知道发生了什么。

我认为你需要在事件对象上调用preventDefault

当你在vanilla JS处理程序中时,返回false是可以的,而你却不是。

尝试将事件作为参数传递,然后调用e.preventDefault()

jsfiddle 文档

 $(function() { $("#login").submit(function(e) { e.preventDefault(); $('#signinPane').showLoading(); $("#loginError").hide(); var data = $(this).serializeObject(); $.ajax({ 'type': "POST", 'url': "", 'data':data, 'success': function(result) { } }); }); }); 

使用

 event.preventDefault(); $("#login").submit(function(event) { event.preventDefault(); $('#signinPane').showLoading(); 

这将阻止默认表单提交特征。

尝试:

 $("#login").submit(function(e) { e.preventDefault(); e.stopPropagation(); 

http://api.jquery.com/event.preventDefault/

http://api.jquery.com/event.stopPropagation/