ASP クラシック ページが登場し、ログイン ダイアログ (jquery を使用して作成) が表示されます。ユーザーがログインをクリックすると、ダイアログがポップアップしてパスワードを要求します (ユーザー名は必要ありません。小グループ)。パスワードを入力して物理的にログインをクリックすると、すべて正常に機能します。
ただし、Enterキーを押すと、フォームがなくても「フォーム」が送信され、URLが更新されhttp://xxx.xxxx.xxxx.asp?password=whatever
、ログインコードが実行されません(ログインボタンがクリックされなかったため)。http://xxx.xxxx.xxxx.asp?
奇妙なことに、ユーザーが代わりにhttp://xxx.xxxx.xxxx.asp
(最後の疑問符に注意してください) に移動した場合、ダイアログ内で Enter キーを押しても何も起こらないことがわかりました。
なぜこれが起こるのか、どうすればそれを止めることができるのでしょうか?
編集: ダイアログの HTML は次のとおりです。
<div id="login-form" title="Log in">
<p class="validateTips">Please enter your password.</p>
<label for="password">Password</label>
<input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />
</div>
そして、ここにjqueryがあります:
$( "#login-form" ).dialog({
autoOpen: false,
height: 350,
width: 350,
modal: true,
buttons: {
"Log In": function() {
var bValid = true;
allFields.removeClass( "ui-state-error" );
if ( password.val() == 'skeet' ) {
setCookie("loggedIn","true",1);
alert("Logged in");
$( this ).dialog( "close" );
location.reload();
}
else
{
alert("Invalid Password");
}
},
Cancel: function() {
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
}
});