为什么Firefox在Chrome浏览器中无法正常运行时,为什么会说“未定义事件”?

时间:2019-03-20 12:06:53

标签: jquery ajax firefox

我正在开发一个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();
  });
});

1 个答案:

答案 0 :(得分:0)

Firefox不像其他一些浏览器那样将当前事件分配给全局事件

您还希望移动preventDefault,因为以后发生的任何错误都会破坏脚本,并允许表单代替Ajax或与Ajax一起提交

  1. 将ADD事件传递给函数定义,以便将其传递:
      

    功能(事件){

  2. event.preventDefault();移动到函数顶部

赞:

$('#form2').on("submit",function(event) {
  event.preventDefault();