JQueryUIWebサイトからJQueryUIダイアログフォームのサンプルを取得しました。
ダイアログを開いてフォームが表示されたら、キーを押すとフォームが送信されるようにしたかったので、onReady()に次を追加しました。
$ .extend($。ui.dialog.prototype.options、{open:function(){var $ this = $(this);
// focus first button and bind enter to it
$this.parent().find('.ui-dialog-buttonpane button:first').focus();
$this.keypress(function(e) {
if( e.keyCode == 13 ) {
$this.parent().find('.ui-dialog-buttonpane button:first').click();
return false;
}
});
}
});
これは完全にトリックを実行します(つまり、click()が必要なときにトリガーされます)が、次のようになります。
キーを押してフォームを最初に送信すると、送信は1回実行されます。
ダイアログを再度開いて、キーを押して再度送信すると、フォームが2回送信されます。
ダイアログを再度開いて、キーを押して再度送信すると、フォームは3回送信され、以下同様に続きます。
これは、次のフィドルでテストできます:http: //jsfiddle.net/fWW2E/
専用の「送信」ボタンをクリックしてこれを行うと正しく機能することを付け加えておきます。これは、キーを押す必要がある場合にのみ失敗します。
何か案は ?
ありがとうございました !