1

動作デモについては、以下のコードを参照してください。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>
4

1 に答える 1

0

送信機能はボタンキーでのみ機能しているように見えます(ボタン送信機能はボタンクリックでのみ呼び出されます)。

を使用してフォームを明示的にバインドする必要があります

$('yourformselector').submit(function(){
          $(this).dialog('close');
});
于 2012-10-14T20:09:24.697 に答える