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