两个KendoUI窗口父窗口和子窗口在按下当前窗口Popup的键时停止传播



我有两个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窗口。感谢

最新更新