Невозможно написать слушатель клавиши ввода с помощью yui (javascript) - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть простой сценарий, в котором нажатие клавиши Enter должно вызвать отправку в диалоговом окне.

Пример кода для диалогового окна

sampleDialog = new YAHOO.widget.Dialog("sampleDialogContent", {
        modal:true,
        draggable:false,
        buttons:[{
            text:"Submit",
            handler: submitHandler,
            isDefault:true
        },{
            text:"Cancel",
            handler: cancelHandler
        }]
    })
var escapeListener = new YAHOO.util.KeyListener(document, {
        keys : [27]
    }, {
        fn:cancelHandler,
        scope:sampleDialog,
        correctScope:true
    } );
escapeListener.enable();

var enterListener = new YAHOO.util.KeyListener(document, {
        keys : [13]
    }, {
        fn:submitHandler,
        scope:sampleDialog,
        correctScope:true
    } );
enterListener.enable();

. В приведенном выше коде Escape Key Listener работает отличнои ввод ключа слушателя не работает.Зачем?Если я изменю ключ для submitHandler, он снова будет работать.Клавиша ввода делает что-то spl

1 Ответ

1 голос
/ 13 октября 2011

Я определил проблему. В обработчике отправки у меня есть несколько проверок проверки, которые показывают предупреждение, если данные неверны. Когда я тестировал, я никогда не тестировал с хорошими данными. Таким образом, я всегда поражал эти окна оповещения. Возникает проблема: по какой-то причине в диалоговом окне оповещения также нажимается клавиша ввода вместе с родительским диалоговым окном, поэтому диалоговое окно оповещения свернуто, и сетевой интерфейс выглядит так, как будто ничего не произошло. Теперь я уничтожаю ключевое событие перед тем, как вызывать submit.

...