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

时间:2013-12-27 16:08:50

标签: javascript jquery

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

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;
   });
});

HTML代码

<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调用。 不确定发生了什么。

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

jsfiddle Documentation

$(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();

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

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