Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用yui(javascript)编写Enter键侦听器_Javascript_Yui_Keylistener - Fatal编程技术网

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

无法使用yui(javascript)编写Enter键侦听器,javascript,yui,keylistener,Javascript,Yui,Keylistener,我有一个简单的场景,在这个场景中,按Enter键应该会触发对话框上的submit sampleDialog = new YAHOO.widget.Dialog("sampleDialogContent", { modal:true, draggable:false, buttons:[{ text:"Submit", handler: submitHandler, isDefa

我有一个简单的场景,在这个场景中,按Enter键应该会触发对话框上的submit

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();
对话框的示例代码

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

我发现了问题。在提交处理程序中,我进行了一些验证检查,如果数据不正确,将显示警报。当我进行测试时,我从不使用良好的数据进行测试。所以我总是打那些警报箱。问题来了:出于某种原因,警报对话框还与父对话框一起按下了enter键,因此警报对话框被折叠,网络UI效果就像什么都没有发生一样。现在,在实际调用submit之前,我先终止键事件。

您需要共享更多代码。你所做的一切对我来说都是意料之中的。事实上,我得到了一个双重提交——一个来自KeyListener,另一个来自对话框。