不确定是什么问题,因为此代码在一段时间之前工作正常,我正在尝试使用Ajax
提交表单,这是我的代码
$(function() {
$("#login").submit(function() {
$('#signinPane').showLoading();
$("#loginError").hide();
var data = $(this).serializeObject();
$.ajax({
'type': "POST",
'url': "<c:url value="/shop/customer/j_spring_security_check"/>",
'data':data,
'success': function(result) {
}
});
return false;
});
});
<form id="login" method="post" accept-charset="UTF-8">
<input id="userName" style="margin-bottom: 15px;" type="text" name="j_username" size="30" />
<input id="password" style="margin-bottom: 15px;" type="password" name="j_password" size="30" />
<button type="submit" id="login-button"></button>
</form>
我的问题是,当我点击提交按钮时,页面正在刷新,并且根本没有提交Ajax调用。 不确定发生了什么。
答案 0 :(得分:3)
我认为您需要在事件对象上调用preventDefault
。
当你在vanilla JS处理程序中时,返回false是可以的,而你却不是。
答案 1 :(得分:2)
尝试将事件作为参数传递,然后调用e.preventDefault()
$(function() {
$("#login").submit(function(e) {
e.preventDefault();
$('#signinPane').showLoading();
$("#loginError").hide();
var data = $(this).serializeObject();
$.ajax({
'type': "POST",
'url': "<c:url value="/shop/customer/j_spring_security_check"/>",
'data':data,
'success': function(result) {
}
});
});
});
答案 2 :(得分:2)
使用
event.preventDefault();
$("#login").submit(function(event) {
event.preventDefault();
$('#signinPane').showLoading();
这将阻止默认表单提交特征。
答案 3 :(得分:0)
尝试:
$("#login").submit(function(e) {
e.preventDefault();
e.stopPropagation();