我已经尝试了以下堆栈答案中建议的技术,但没有成功:
Submit jQuery UI dialog on <Enter>
我的代码一定有问题。登录时,我会弹出一个免责声明,警告用户在网站内找到的信息是 secret 的。我希望它能够继续,用户所要做的就是按下回车键。这是我的原始代码(我已经包含了浏览器检查):
$("#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。由于该功能仅在对话框打开后设置,因此它不一定会影响我页面的其余部分。在 keydown 函数中,我让它点击了我通过 ID 调用的继续按钮。
感谢大家的帮助。
关于javascript - 在 Enter 键上确认 Jquery UI 对话框提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11580304/