无法使用yui(javascript)写入Enter键侦听器

时间:2011-09-12 18:15:10

标签: javascript yui keylistener

我有一个简单的场景,其中按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

1 个答案:

答案 0 :(得分:1)

我发现了问题。在提交处理程序中,我有一些验证检查,如果数据不好则会显示警报。当我测试时,从不测试好数据。所以我总是打那些警报箱。问题就出现了:由于某种原因,警告对话框也会按下回车键和父对话框,因此警报对话框已折叠,并且网络UI效果就像没有发生任何事情一样。现在我在实际调用提交之前杀死了关键事件。