我已经尝试过以下堆栈中建议的技巧,但没有运气:
Submit jQuery UI dialog on <Enter>
我的代码必须关闭。登录时,我有一个免责声明,警告用户该网站内的信息是保密的。我想继续,所有用户要做的就是点击回车键。这是我的原始代码(我已经包含浏览器检查):
$("#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");
}
}
})
};
});
现在这是我的密码命令代码:
$("#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");
}
}
})
};
});
这很遗憾不适合我,我不能为我的生活找出原因?如果有人能看到问题所在,我将非常感激!
谢谢!
答案 0 :(得分:3)
我把它放在一边大部分时间,只是重温它。我搞定了!这是我的代码:
$("#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调出的继续按钮。
感谢大家的帮助。
答案 1 :(得分:1)
尝试使用:
$("#dialog-confirm").keydown(function (event) {
if (event.keyCode == 13) {
// Submit it
}
});
答案 2 :(得分:0)
如果对话框中没有任何可以获得焦点的元素(即:输入元素),您可以尝试这个问题中建议的方法:jquery-ui Dialog: Make a button in the dialog the default action (Enter key)