Dialog keypress和DOM

时间:2009-10-08 18:53:30

标签: jquery jquery-ui dialog modal-dialog

我正在尝试使用jQuery的按键触发按钮单击使用jQuery对话框功能创建的模式对话框。问题是,使用下面的代码,它第一次工作(按Enter键按下Save按钮)但是当我关闭模态对话框并重新打开它时,我得到了不稳定的行为。我认为$(this).("button:contains('Save')")的某些变体可行,但这不起作用。

$('#dialog').keypress(function(e) {
        if (e.which == 13) {
      $("button:contains('Save')").click();
        }
});

仅供参考,使用$(“#dialog”)。对话框('open')打开对话框,而不是autoOpen:true。 这项任务的最佳实践是什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

我愿意:

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

答案 1 :(得分:2)

keypress用于写信。 keydown适合一切。我会尝试使用keydown。

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

更多信息:

http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspx