我有两个popUpEdit窗口连接到两个网格,一个是父网格,另一个是子网格。我想添加一个keyPress
输入以提交或单击更新按钮。我现在遇到的问题是,如果在子Popup打开时按Enter键,它会向下传播到父容器。这是我迄今为止的代码。
在每个网格编辑函数中调用gridSumbitEnterAutoFocus
,所以我认为e.container
应该是唯一的,并且keyPress
将附加到每个特定的窗口。我也尝试过stopPropagation
,但我也无法使用它。任何帮助都将不胜感激!
调试后确定一些新信息。我禁用了所有keypress
事件,但子弹出窗口仍然响应EnterKeypress
。我不确定它到底在做什么。根据firebug控制台的说法,它没有调用saveChanges
或提交,但子窗口和父窗口都关闭了,当子Popup有焦点时,我在点击回车键后返回主网格。我可以在父弹出菜单上点击回车键,但不会像预期的那样发生任何事情。
function gridSumbitEnterAutoFocus(e) {
e.container.keypress(function(event) {
event.bubbles = false;
event.stopPropagation(); debugger;
//if the key press is ESC or Enter
if (event.keyCode === 27) {//ESC
e.sender.cancelChanges();
} else if (event.keyCode === 13) {//ENTER
event.bubbles = false;
event.stopPropagation();
// e.container.find('.k-grid-update').focus().click();
e.sender.saveChanges();
}
});
e.container.data('kendoWindow').bind('activate', function(e) {
$('[autofocus]').focus()
})
}
Ok想明白了。当表单标记在页面上时,回车键响应浏览器默认的提交操作。我不需要表单标签,所以我删除了它们。我想有一种方法可以防止提交的默认操作,但删除表单标记效果很好。现在,我的按键事件正在使用正确的popUpEdit窗口。感谢