event.preventDefault () не работает в Mozilla или IE
Наконец-то я приступил к тестированию своего сайта в других браузерах (построил его в основном в Chrome). К сожалению, многие вещи работают по-другому. Я начну с самой первой проблемы: при входе в систему у меня есть проверка JS / jQuery, чтобы убедиться, что имя пользователя и пароль совпадают, и при неудаче это должно остановить отправку.
Однако, несмотря на то, что это работает в Chrome и Safari, в Mozilla и IE отправка по-прежнему продолжается (попадание на страницу с извинениями, но все же то, что я бы предпочел просто не увидеть вообще).
Я пытался вырубитьevent.preventDefault()
заe.preventDefault()
или жеevt.preventDefault()
но ни один из них не работает, форма все еще отправляет (и для вторых двух это делает так, чтобы это также отправлялось в Chrome). Вот мой код, хотелось бы любые мысли:
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;
}
}
});
}
Обратите внимание, что функция определенно проходит и возвращает 1, когда имя пользователя и пароль не совпадают, так как во всех случаях появляется сообщение «Неверное имя пользователя / пароль».
Кроме того, если кто-то заинтересован в HTML:
<form action="login.php" method="post" onsubmit="return checkLogin()">
<!-- code for inputs, eg username -->
<input type="submit" class="btn" value="Log In"/>
</form>