Диалоговая клавиша и DOM - PullRequest
       12

Диалоговая клавиша и DOM

0 голосов
/ 08 октября 2009

Я пытаюсь использовать нажатие клавиши jQuery, чтобы вызвать нажатие кнопки в модальном диалоговом окне, созданном с помощью функции диалога jQuery. Проблема в следующем коде, он работает с первого раза (нажатие клавиши ввода нажимает кнопку Сохранить), но я получаю неправильное поведение, когда закрываю модальное диалоговое окно и снова открываю его. Я думаю, что какой-то вариант $(this).("button:contains('Save')") будет работать, но это не работает.

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

FYI диалог открывается с помощью $ ("# dialog"). Dialog ('open'), а не autoOpen: true. Какова будет лучшая практика для этой задачи?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 08 октября 2009

нажатие клавиш для букв. Keydown для всего. Я бы попробовал использовать keydown.

Ваш код, скорее всего, не выполняется. Enter активирует действие по умолчанию, поэтому оно работает с первого раза.

Больше информации здесь:

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

2 голосов
/ 08 октября 2009

Я бы сделал:

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