我正在开发一个ajax请求,该请求将登录用户。以下脚本在chrome中运行良好,但在Firefox中,它重定向到同一页面(基本上不提交表单),并且控制台说“未定义事件”。 / p>
$(document).ready(function() {
$('#form2').submit(function() {
$('#username_error').empty();
$("#password_error").empty();
var csrftoken = $("[name=csrfmiddlewaretoken]").val();
var formdata = {
'username': $('input[name=username]').val(),
'password': $('input[name=loginpassword]').val(),
};
console.log("Formvalue is taken");
$.ajax({
type: 'POST',
url: '/Submit/logging',
data: formdata,
dataType: 'json',
encode: true,
headers: {
"X-CSRFToken": csrftoken
},
})
.done(function(data) {
console.log(data);
if (!data.success) { //we will handle error
if (data.password) {
console.log(data.password);
$('#password_error').text(data.password);
}
return false;
} else {
window.location = '/';
}
});
event.preventDefault();
});
});
答案 0 :(得分:0)
Firefox不像其他一些浏览器那样将当前事件分配给全局事件
您还希望移动preventDefault,因为以后发生的任何错误都会破坏脚本,并允许表单代替Ajax或与Ajax一起提交
功能(事件){
event.preventDefault();
移动到函数顶部赞:
$('#form2').on("submit",function(event) {
event.preventDefault();