作成した単純な html ログイン ページに問題があります。無効な認証情報を使用してログイン フォームを送信すると、検証メソッドが「return false」コマンドを実行しているにもかかわらず、フォームが送信されます。この質問がここで何度も聞かれていることは知っていますが、それらの質問に対する回答はどれも役に立ちませんでした.
私のhtmlフォームは次のとおりです。
<form onSubmit="return validateForm();" method="get" action="TestPage.html">
<div id="centralPoint" class="frame">
<select id="centralPointSelect" data-inline="true" data-mini="true" data-native-menu="false" name="centralPoint"></select>
</div>
<div id="credentialsFrame" class="frame">
<input id="userField" type="text" name="Username" />
<input id="passField" type="password" name="Password" />
</div>
<div id="errorMsg"></div>
<input id="loginBtn" type="submit" value="Login" />
<div id="rememberMe" class="frame">
<input type="checkbox" id="checkbox-1" class="custom" data-mini="true" name="rememberMe" />
<label for="checkbox-1">Keep me signed in</label>
</div>
<div id="forgotPassFrame">
<input id="forgotPass" type="button" data-mini="true" value="Forgot password?" />
</div>
</form>
そして、これが私のjavascriptメソッドです。ここにある唯一のコード行が「return false;」であっても注意してください。フォームは引き続き送信されます。また、firebug をチェックインして、メソッドが実際に呼び出され、実際に false を返していることを確認し、すべてチェックアウトしました。
function validateForm()
{
var usernameTxt = $("#userField").attr("value");
var passwordTxt = $("#passField").attr("value");
if (usernameTxt == "" || passwordTxt == "" || (usernameTxt == userLbl && passwordTxt == passLbl))
{
$("#errorMsg").html("Please enter a username and password.");
return false;
}
}
私が見逃していることは本当に明らかですか?html フォーム タグで確認できる以外の方法で onsubmit イベントをバインドしたり、送信ボタンにクリック ハンドラーを割り当てたりしません。
私がJQueryモバイルを使用していることが関連している可能性があります.これが私のフォームで何かをしている可能性はありますか?