Enter键不关闭jquery对话框

时间:2014-04-07 07:10:39

标签: jquery

当我点击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

2 个答案:

答案 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");
  }
});