私は最終的に、他のブラウザで自分のサイトをテストするところまで来ました (ほとんどが Chrome で構築されています)。残念ながら、多くのものが異なって機能するようです。最初の問題から始めましょう。ログイン時に、ユーザー名とパスワードが一致することを確認するために JS/jQuery チェックがあり、失敗すると送信が停止するはずです。
ただし、Chrome と Safari では機能しますが、Mozilla と IE ではまだ提出が進行中です (謝罪ページにアクセスしていますが、それでもまったく見たくないものです)。
orevent.preventDefault()
をサブスクライブしようとしましたが、どれも機能せず、フォームは引き続き送信されます (2 番目の 2 つは、Chrome でも送信されるようにします)。これが私のコードです。e.preventDefault()
evt.preventDefault()
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>