0

我开始学习 Expressjs、Twitter Bootstrap 和 BackBonejs。我已经使用命令行工具创建了基本的 Expressjs 应用程序,并为登录表单添加了一个 index.html。当用户单击附加了事件的“登录”按钮时,我检索表单信息并对“/登录”路由进行 ajax 调用,但它不起作用..

这里是必要文件的列表:

谢谢您的帮助。

4

2 回答 2

1

问题是表单仍然通过重定向提交,因为这是它的默认行为,并且没有被指示这样做。而且,由于重定向,浏览器正在中止 Ajax 请求。

为了防止重定向,您需要绑定到并使用的.submit()事件<form>event.preventDefault()

$(document).ready(function () {
    $('#login-form').submit(function (e) {
        e.preventDefault();
    });
});

将这个事件用于 Ajax 也可能是值得的,而不是.click()因为许多浏览器允许通过除了单击按钮<button>之外的其他操作提交(例如,当焦点位于 a 时按下):type="submit"Enter<input type="text">

$(document).ready(function () {
    $('#login-form').submit(function (e) {
        e.preventDefault();

        var _login = $('#login').val(),
            _password = CryptoJS.SHA512($('#password').val()),
            _remember = $('input:checkbox:checked').val() ? 1 : 0;

        // etc.
    });
});
于 2013-02-13T19:36:48.953 回答
0

一方面,您需要防止按钮单击的默认操作:

$('#btn-login').click(function () {
  // ...
});

// should accept the passed event and `prevenDefault`, like...

$('#btn-login').click(function (e) {
  e.preventDefault();
  // ...
});
于 2013-02-13T17:17:43.280 回答