Не удалось записать ввод ключевого слушателя с Юи(на JavaScript)


У меня есть простой scenrio, в котором нажатие клавиши 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 работает отлично, а Enter key listener не работает. Почему? Если я меняю ключ для submitHandler, он снова работает. Клавиша Enter делает что-то spl

1 2

1 ответ:

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