无法使用yui(javascript)编写Enter键侦听器
我有一个简单的场景,在这个场景中,按Enter键应该会触发对话框上的submit无法使用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
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,另一个来自对话框。