event.preventDefault () nie działa w Mozilli lub IE

W końcu testuję moją witrynę w innych przeglądarkach (zbudowałem ją głównie w Chrome). Niestety wiele rzeczy wydaje się działać inaczej. Zacznę od pierwszego problemu: po zalogowaniu mam czek JS / jQuery, aby upewnić się, że nazwa użytkownika i hasło są zgodne, a po niepowodzeniu powinien przerwać przesyłanie.

Jednak, podczas gdy działa w Chrome i Safari, w Mozilli i IE, przesłanie wciąż trwa (trafiając na stronę przeprosin, ale wciąż coś, czego wolałbym po prostu nie widzieć).

Próbowałem odciąć sięevent.preventDefault() dlae.preventDefault() lubevt.preventDefault() ale żadna z nich nie działa, formularz nadal się przesyła (a przez dwa kolejne sprawia, że ​​także w Chrome). Oto mój kod, pokochałbym wszelkie myśli:

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;
      } 
    }
    });
}

Należy pamiętać, że funkcja zdecydowanie przechodzi i powraca 1, gdy nazwa użytkownika i hasło nie zgadzają się, ponieważ we wszystkich przypadkach pojawia się komunikat „Nieprawidłowa nazwa użytkownika / hasło”.

Ponadto, jeśli ktoś jest zainteresowany HTML:

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

questionAnswers(5)

yourAnswerToTheQuestion