当我点击Ok jquery窗口关闭时,我有一个jquery对话框但是当我点击进入jquery窗口关闭并再次重新打开时。如果有人按Enter键关闭jquery对话框,如何处理。
请是我的代码。
function showDialog(strText,actionUrl,object){
$( "#dialog:ui-dialog" ).dialog( "destroy" );
var w = screen.availWidth;
var h = screen.availHeight;
var leftPos = (w-350)/1.5, topPos = (h-170)/1.5;
document.getElementById("validateMsg").innerHTML="<p align='center' style='font-size: 13px;'>"+strText+"</p>";
$("#validateMsg" ).dialog({
modal: true,
autoOpen: false,
width:350,
height:170,
title:"Message",
dialogClass: "noclose",
buttons: {
"Ok": function() {
// on enter control comes here but window close and re open again but if I click on ok then window close
$("#validateMsg").dialog( "close" );
$("body").css("overflow", "auto");
$("#validateMsg").dialog('destroy').empty();
if(actionUrl.length != 0){
location.href=actionUrl;
}
if(object.length != 0){
object.focus();
}
}
}
});
$('body').on('keydown', '#validateMsg', '', function (e) {
if (e.keyCode == "13") {
$(this).dialog('close');
}
});
//$.scrollTo(0, 0);
$("#validateMsg").dialog('open');
// return false;
}
//编辑 如果我删除下面的代码然后输入正在工作,但我希望焦点回到输入文本
if(actionUrl.length != 0){
location.href=actionUrl;
}
if(object.length != 0){
object.focus();
}
如何关闭上面代码中输入键的窗口。
的问候,PISE
答案 0 :(得分:2)
试试这个
$(function () {
$('body').on('keydown', '#validateMsg', '', function (e) {
if (e.keyCode == "13") {
$(this).dialog('close');
}
});
});
<强> DEMO HERE 强>
答案 1 :(得分:0)
此解决方案也有效:
$('.my-dialog').on('keypress', function(e) {
if (e.keyCode == $.ui.keyCode.ENTER) {
$('.my-dialog').dialog("close");
}
});