在Enter键上确认Jquery UI对话框提示

我已经尝试了以下堆栈中建议的技术,但没有运气:

在上提交jQuery UI对话框

我的代码必须关闭。 登录时,我有一个免责声明,警告用户该网站内的信息是保密的。 我想继续,所有用户要做的就是点击回车键。 这是我的原始代码(我已经包含浏览器检查):

$("#loginForm").submit(function (e) { e.preventDefault(); if ($.browser.msie) { $("#dialog-confirm") .dialog({ resizable: false, height: 300, width: 550, modal: true, buttons: { "Continue": function (e) { $("#loginForm").unbind('submit').submit(), $(this).dialog("close"), $("#loginForm").submit(); $("#btnLogin").click(); }, Cancel: function (e) { e.preventDefault(); $(this).dialog("close"); } } }) } else { $("#dialog-browser") .dialog({ resizable: false, height: 220, width: 480, modal: true, buttons: { "Close": function (e) { e.preventDefault(); $(this).dialog("close"); } } }) }; }); 

现在这里是我的代码与keyup命令:

 $("#loginForm").submit(function (e) { e.preventDefault(); if ($.browser.msie) { $("#dialog-confirm") .dialog({ resizable: false, height: 300, width: 550, modal: true, buttons: { "Continue": function (e) { $("#loginForm").unbind('submit').submit(), $(this).dialog("close"), $("#loginForm").submit(); $("#btnLogin").click(); }, Cancel: function (e) { e.preventDefault(); $(this).dialog("close"); } }, HERE>>> open: function() { $("#dialog-confirm").keypress(function(e) { if (e.keyCode == $.ui.keyCode.ENTER) { $("#loginForm").unbind('submit').submit(), $(this).dialog("close"), $("#loginForm").submit(); $("#btnLogin").click(); } }); } }) } else { $("#dialog-browser") .dialog({ resizable: false, height: 220, width: 480, modal: true, buttons: { "Close": function (e) { e.preventDefault(); $(this).dialog("close"); } } }) }; }); 

不幸的是,这不适合我,我不能为我的生活弄清楚为什么? 如果有人能看到问题所在,我将非常感激!

谢谢!!

我把它放在一边大部分时间,只是重温它。 我搞定了! 这是我的代码:

 $("#loginForm").submit(function (e) { e.preventDefault(); if ($.browser.msie) { $("#dialog-confirm") .dialog({ resizable: false, height: 300, width: 550, modal: true, buttons: { "Continue": { text: "Continue", id: "btnContinue", click: function (e) { $("#loginForm").unbind('submit').submit(), $(this).dialog("close"), $("#loginForm").submit(); $("#btnLogin").click(); } }, Cancel: function (e) { e.preventDefault(); $(this).dialog("close"); } }, open: function () { $(document).keydown(function (event) { if (event.keyCode == 13) { $("#btnContinue").click(); } }); } }) } 

基本上,我在对话框中分配了一个ID值,而不是$(“#dialog-confirm”)。keydown我使用了$(document).keydown。 由于该function仅在对话框打开后设置,因此不一定会影响我的页面的其余部分。 在keydown函数内部,我按下了我通过ID调出的继续按钮。

感谢大家的帮助。

试试这个:

 $("#dialog-confirm").keydown(function (event) { if (event.keyCode == 13) { // Submit it } }); 

如果对话框中没有任何要获得焦点的元素(即:输入元素),您可以尝试这个问题中建议的方法: jquery-ui对话框:在对话框中创建一个默认操作按钮(Enter键)