私のエラーがPHP経由でフォーム自体に送信されたことが原因かどうかはわかりませんが、関数にヒットしていないだけで、何が返されても送信されます。ここで何が欠けているのかわかりません。これが私のフォームです
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Login Page</title>
<script type="text/javascript" src="js/functions.js"></script>
<!--Internal for simplicity or until bigger page -->
<style type="text/css">
#login div{display:inline;color:red;}
input{margin-right:20px;}
</style>
</head>
<body>
<form name="login" id="login" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST" onsubmit="return CheckLogin()">
<?php if($_POST && $win == false): ?>
<div>Login Unsuccessful. Please Try Again</div><br />
<?php endif ?>
<input type="text" size="10" name="username" /><div></div>
<br />
<input type="password" size="10" name="password" /><div></div>
<br />
<input type="submit" text="Submit" />
</form>
<a href="register.php">Registration Page</a>
</body>
</html>
実際には、ユーザー名/パスワードが空かどうかを確認しているだけですが、とにかくこの関数を介して送信します:
function CheckLogin()
{
window.alert("made it here");
var login = document.forms["login"];
var user = login["username"].value;
var pass = login["password"].value;
if(user == null || user == "")
{
window.alert("user");
return false;
}
return false;
}
私が見逃しているのはばかげていると確信しているので、これを送信する前に関数名を再確認し、javascript エラーが発生していないかどうかを確認しましたが、どちらも問題ではありませんでした。誰かが私のエラーを見ますか?
要点は、ユーザー名またはパスワードが空または null の場合、PHP を実行したり、フォームをそれ自体に送信したりしたくないということです。
編集PHP 機能を除いた完全な HTML ページを追加しました。また、何らかの理由で、JavaScript リンクが「リンク」しない代わりに、インスペクト要素または firebug を介して埋め込まれているように、ヘッダーに直接コンテンツを表示できることにも注意してください。これが問題の原因かもしれませんが、理由は不明です。
編集念のためdoctypeを追加しましたが、それでも役に立ちません。実際にリンクするのではなく、通常どおりにJavaScriptをページに自動的に埋め込み、CDATAに配置します。IE、Firefox、Chrome でこれを行います...
私のPHPに何か関係があると誰かが思ったら投稿できますが、投稿せずにサーバー側のコードがクライアント側のコードとどのようにやり取りできるかわかりません。