動作デモについては、以下のコードを参照してください。jQuery UI モーダル ダイアログ ボックスが開き、ユーザーはパスワードの入力を求められます。ボタンが強調表示されている場合はsubmit
、すべて正常に機能しています。ただし、入力領域がまだ強調表示されている場合は、ページがリロードされたように見え、ブラウザの URL が に変更されexample.com?confirm_password=asdfasdf#
ます。
これは、ダイアログ ボックスにフォームが埋め込まれているためだと思われますが、これは jQuery の例に基づいています。
テキスト入力ボックスが強調表示された状態で Enter キーを押すと、送信をクリックするのと同じになるようにするにはどうすればよいですか?
<html>
<head>
<title>Problem Demo</title>
<link href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/jquery-1.7.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#myDialog').dialog({
autoOpen: false,
modal: true,
buttons: {
"Submit": function() {
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
}
});
$('#openMyDialog').click(function() {
$('#myDialog').dialog('open');
});
});
</script>
</head>
<body>
<a id="openMyDialog" href="#">Open Dialog</a>
<div id="myDialog">
<p style="text-align: left;">Please enter your password.</p>
<form>
<fieldset>
<label for="confirm_password">Password</label>
<input type="password" name="confirm_password" id="confirm_password" value="" />
</fieldset>
</form>
</div>
</body>
</html>