jQuery UIウィジェットにオプションがあるかどうかはわかりませんkeypress
が、ダイアログを含むdivにイベントをバインドするだけです...
$('#DialogTag').keypress(function(e) {
if (e.keyCode == $.ui.keyCode.ENTER) {
//Close dialog and/or submit here...
}
});
これは、ダイアログのどの要素にフォーカスがあるかに関係なく実行されます。これは、目的に応じて適切な場合とそうでない場合があります。
これをデフォルトの機能にしたい場合は、次のコードを追加できます。
// jqueryui defaults
$.extend($.ui.dialog.prototype.options, {
create: 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 == $.ui.keyCode.ENTER ) {
$this.parent().find('.ui-dialog-buttonpane button:first').click();
return false;
}
});
}
});
これがどのように見えるかの詳細なビューは次のとおりです。
$( "#dialog-form" ).dialog({
buttons: { … },
open: function() {
$("#dialog-form").keypress(function(e) {
if (e.keyCode == $.ui.keyCode.ENTER) {
$(this).parent().find("button:eq(0)").trigger("click");
}
});
};
});