【问题标题】:Unable to write Enter key listener with yui(javascript)无法使用 yui(javascript) 编写 Enter 键侦听器
【发布时间】:2011-09-12 18:15:09
【问题描述】:

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

【问题讨论】:

  • 您需要共享更多代码。你所拥有的对我来说是预期的。事实上,我收到了双重提交——一个来自 KeyListener,另一个来自 Dialog。

标签: javascript yui keylistener


【解决方案1】:

我发现了问题。在提交处理程序中,我有一些验证检查,如果数据错误,则会显示警报。当我测试时,我从未测试过良好的数据。所以我总是点击那些警告框。问题来了:由于某种原因,警告对话框也与父对话框一起按下了回车键,因此警告对话框折叠了,净 UI 效果好像什么也没发生。现在我在实际调用提交之前杀死了关键事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 2018-08-18
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多