event.preventDefault () no funciona en Mozilla o IE

Finalmente estoy en el punto de probar mi sitio en otros navegadores (construido principalmente en Chrome). Desafortunadamente, muchas cosas parecen funcionar de manera diferente. Comenzaré con el primer problema: al iniciar sesión, tengo una verificación JS / jQuery para asegurarme de que el nombre de usuario y la contraseña coincidan, y en caso de falla, debería detener el envío.

Sin embargo, mientras funciona en Chrome y Safari, en Mozilla e IE el envío aún se está realizando (está llegando a una página de disculpas, pero es algo que prefiero no ver).

He intentado subyugarevent.preventDefault() parae.preventDefault() oevt.preventDefault() pero ninguno de ellos funciona, el formulario aún se envía (y para los dos siguientes lo hace para que se envíe también en Chrome). Aquí está mi código, me encantaría cualquier pensamiento:

function checkLogin()
{
    // get the variables, execute some other checks (eg, things not blank)

    // run ajax code to determine if pieces match
    $.ajax({
    type: "POST",
    url: "check_login.php", 
    data: {'username': username, 'password': password},
    async: false,
    success: function(result) 
    {
      if (result == 1)
      {
        $('#loginoff').html("Invalid username/password");
        e.preventDefault();
        return false;
      } 
      else
      {
        $('#loginoff').html("");
        return true;
      } 
    }
    });
}

Tenga en cuenta que la función está pasando y devolviendo 1 cuando el nombre de usuario y la contraseña no coinciden, ya que, en todos los casos, aparece el mensaje "Nombre de usuario / contraseña no válido".

Además, en caso de que alguien esté interesado en el HTML:

<form action="login.php" method="post" onsubmit="return checkLogin()">
<!-- code for inputs, eg username -->
<input type="submit" class="btn" value="Log In"/>
</form>

Respuestas a la pregunta(5)

Su respuesta a la pregunta