输入键不关闭 jquery 对话框
Posted
技术标签:
【中文标题】输入键不关闭 jquery 对话框【英文标题】:Enter key do not close jquery dialog box 【发布时间】:2014-05-19 07:13:25 【问题描述】:当我点击 Ok jquery window close 时,我有一个 jquery 对话框,但是当我点击 enter jquery window close 并再次重新打开时。如果有人敲回车关闭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
【问题讨论】:
请提供一个jsfiddle @CodingAnt 对不起,我是 jquery 的新手,并且看过 jsfiddle 网站,我们可以在其中测试我们的代码,但为什么要提供 jsfiddle。 【参考方案1】:试试这个
$(function ()
$('body').on('keydown', '#validateMsg', '', function (e)
if (e.keyCode == "13")
$(this).dialog('close');
);
);
DEMO HERE
【讨论】:
我收到以下错误 TypeError: $(...).on is not a function 而我的代码是 ` $( document ).ready(function() $('body').on ('keydown', '#validateMsg', '', function (e) if (e.keyCode == "13") $(this).dialog('close'); ); ); ` 我遇到了同样的错误,我已经更新了代码。请查看更新的代码。 TypeError: $(...).on 不是函数 object.focus();调用 keyup 函数,然后它再次调用 jquery 对话框,它进入无限循环。所以现在我必须阻止 focus() 上的 keyup 功能,然后我的问题就会得到解决【参考方案2】:此解决方案也有效:
$('.my-dialog').on('keypress', function(e)
if (e.keyCode == $.ui.keyCode.ENTER)
$('.my-dialog').dialog("close");
);
【讨论】:
以上是关于输入键不关闭 jquery 对话框的主要内容,如果未能解决你的问题,请参考以下文章