我有一个简单的场景,其中按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键侦听器工作正常,并且Enter键侦听器不起作用。为什么? 如果我更改了submitHandler的密钥,它会再次运行。 Enter键正在做一些spl
答案 0 :(得分:1)
我发现了问题。在提交处理程序中,我有一些验证检查,如果数据不好则会显示警报。当我测试时,从不测试好数据。所以我总是打那些警报箱。问题就出现了:由于某种原因,警告对话框也会按下回车键和父对话框,因此警报对话框已折叠,并且网络UI效果就像没有发生任何事情一样。现在我在实际调用提交之前杀死了关键事件。