AJAX不响应表单提交

时间:2014-06-04 03:16:22

标签: javascript jquery ajax forms

我写了一个学习AJAX的玩具程序,即将用户注册表提交给Web服务器,但是,服务器端的程序无法接收数据。我猜错误是在使用jQuery的以下JS代码上:

$(document).ready(function() {
$('#registerForm').submit(function() {
    var formData = $('#registerForm').serialize();
    $.post('/admin/user/signup', formData, registerResults);
    },

    registerResults: function() {
            console.log("register success!");
        }  // end of registerResults

});  // end of ready

相应的html表单如下:

<form class="form-horizontal" role="form" id='registerForm' method='POST' action="/admin/user/signup">
        <div class="form-group">
                    <label class="col-sm-3 control-label" for="fullname">Fullname: </label>
                    <div class="col-sm-5">
                        <input class="form-control" type='text' id="fullname" name='fullname' placeholder="Full Name" />
                    </div>
        </div>

        <div class="form-group">
            <label class="col-sm-3 control-label" for="username">Username: </label>
            <div class="col-sm-5">
                <input class="form-control" type='text' id="username" name='username' placeholder="Username" />
            </div>
        </div>

        <div class="form-group">
            <input type='submit' value="Submit" class="register-form-button" form='user-create-form' />
        </div>
    </form>

有人可以使用jQuery帮助我使用我的JS代码吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

就像Felix所说,你的JavaScript语法无效。打开JS控制台并刷新页面,您将看到语法错误。

以下是解决问题的方法:

$(document).ready(function () {

    $('#registerForm').submit(function() {
        var formData = $('#registerForm').serialize();
        $.post('/admin/user/signup', formData)
            .done(registerResults)
            .fail(registerError);
    });

    function registerResults() {
        console.log("register success!");
    }  

    function registerError() {
        console.log("There was an error");
    }

}); 

答案 1 :(得分:1)

registerResults函数是基于格式的namespace函数,但您只需要一个标准函数,如下所示。

$(document).ready(function () {
    $('#registerForm').submit(function () {
        var formData = $('#registerForm').serialize();
        $.post('/admin/user/signup', formData, registerResults);
    });

    function registerResults() {
        console.log("register success!");
    } // end of registerResults

}); // end of ready