我开始学习 Expressjs、Twitter Bootstrap 和 BackBonejs。我已经使用命令行工具创建了基本的 Expressjs 应用程序,并为登录表单添加了一个 index.html。当用户单击附加了事件的“登录”按钮时,我检索表单信息并对“/登录”路由进行 ajax 调用,但它不起作用..
这里是必要文件的列表:
谢谢您的帮助。
问题是表单仍然通过重定向提交,因为这是它的默认行为,并且没有被指示这样做。而且,由于重定向,浏览器正在中止 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.
});
});
一方面,您需要防止按钮单击的默认操作:
$('#btn-login').click(function () {
// ...
});
// should accept the passed event and `prevenDefault`, like...
$('#btn-login').click(function (e) {
e.preventDefault();
// ...
});