0

我有两个 popUpEdit 窗口附加到两个网格,一个父级和一个子级。我想添加一个keyPress Enter提交或单击更新按钮。我现在遇到的问题是,如果我在子弹出窗口打开时按 Enter,它会向下传播到父容器。到目前为止,这是我的代码。

gridSumbitEnterAutoFocus在每个网格编辑函数中调用,所以我认为e.container应该是唯一的,并且keyPress将附加到每个特定的窗口。我也尝试过stopPropagation,但我也无法让它工作。任何帮助都将受到赞赏!

调试后确定一些新信息。我禁用了所有keypress事件,但子弹出窗口仍然响应Enter Keypress. 我不确定它到底在做什么。根据萤火虫控制台,它没有调用saveChanges或提交,但子窗口和父窗口都关闭,当子弹出窗口有焦点时,我按回车键后返回主网格。我可以在父弹出窗口上按 Enter 键,但没有按预期发生。

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()
    })
}
4

1 回答 1

0

好的,想通了。当表单标签在页面上时,回车键响应浏览器的默认提交操作。我不需要表单标签,所以我删除了它们。我想有一种方法可以防止提交的默认操作,但删除表单标签效果很好。现在我的按键事件正在使用正确的 popUpEdit 窗口。谢谢

于 2013-02-05T00:53:36.037 回答