在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键)