Jquery 对话框按键和DOM

Jquery 对话框按键和DOM,jquery,jquery-ui,dialog,modal-dialog,Jquery,Jquery Ui,Dialog,Modal Dialog,我试图使用jQuery的按键来触发使用jQuery对话框函数创建的模式对话框上的按钮点击。问题是,对于下面的代码,它在第一次运行时(按enter键按Save按钮),但当我关闭模式对话框并重新打开它时,会出现不稳定的行为。我在想$(this)的一些变体(“按钮:contains('Save')”)会起作用,但不起作用 $('#dialog').keypress(function(e) { if (e.which == 13) { $("button:contains('

我试图使用jQuery的按键来触发使用jQuery对话框函数创建的模式对话框上的按钮点击。问题是,对于下面的代码,它在第一次运行时(按enter键按Save按钮),但当我关闭模式对话框并重新打开它时,会出现不稳定的行为。我在想
$(this)的一些变体(“按钮:contains('Save')”)
会起作用,但不起作用

$('#dialog').keypress(function(e) {
        if (e.which == 13) {
      $("button:contains('Save')").click();
        }
});
仅供参考,该对话框是使用$(“#dialog”)打开的。dialog('open'),而不是自动打开:true。 这项任务的最佳实践是什么

谢谢

我会:

$('#dialog').keyup(function(e) {
    if (e.which == 13) {
         var buttons = $(this).dialog('option', 'buttons');
         buttons['Save']();
         e.stopPropagation();
    }
})
我会:

$('#dialog').keyup(function(e) {
    if (e.which == 13) {
         var buttons = $(this).dialog('option', 'buttons');
         buttons['Save']();
         e.stopPropagation();
    }
})

按键是用来写字母的。按键是一切。我会尝试使用keydown

您的代码很可能无法执行。Enter将触发默认操作,这就是它第一次工作的原因

更多信息请点击此处:


按键用于字母。按键是一切。我会尝试使用keydown

您的代码很可能无法执行。Enter将触发默认操作,这就是它第一次工作的原因

更多信息请点击此处:


似乎只需一个对话框,但当“保存”打开一个新对话框时,所有内容都会关闭。。新对话框也没有另一个“保存”按钮……除非从DOM中删除元素,否则不会从元素中分离keyup事件处理程序。听起来您在其他地方遇到了另一个问题。它似乎只针对一个对话框执行此操作,但当“保存”打开一个新对话框时,所有内容都将关闭。。新对话框也没有另一个“保存”按钮……除非从DOM中删除元素,否则不会从元素中分离keyup事件处理程序。听起来你好像在别的地方遇到了另一个问题。事实上,你部分是对的。如果对话框包含表单,按enter键“提交”表单,但是当对话框不包含表单时,Ken的响应会有所帮助,因为按enter键没有任何作用。事实上,您的回答部分正确。如果对话框包含表单,按enter键“提交”表单,但是当对话框不包含表单时,Ken的响应会有所帮助,因为按enter键不会做任何事情。