0

2つのグリッドに接続された2つのpopUpEditウィンドウがあります。1つは親で、もう1つは子です。送信するを追加keyPress Enterするか、[更新]ボタンをクリックします。私が今抱えている問題は、子ポップアップが開いているときにEnterキーを押すと、親コンテナに伝播することです。これが私のこれまでのコードです。

gridSumbitEnterAutoFocuse.containerは各グリッド編集関数で呼び出されるので、一意である必要があり、keyPress特定の各ウィンドウにアタッチされると思いました。私も試しstopPropagationましたが、それもうまくいきません。どんな助けでも常に感謝しています!

デバッグ後、いくつかの新しい情報を確認してください。すべてのイベントを無効にしkeypressましたが、子ポップアップは引き続きに応答しますEnter Keypress。正確に何をしているのかわかりません。ファイアバグコンソールによると、呼び出しsaveChangesも送信もしていませんが、子ウィンドウと親ウィンドウの両方が閉じ、子ポップアップにフォーカスがあるときにEnterキーを押した後、メイングリッドに戻ります。親ポップアップで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

わかりました。フォーム タグがページ上にある場合、Enter キーはブラウザのデフォルトの送信アクションに応答していました。フォームタグは必要ないので削除しました。送信のDefaultアクションを防ぐ方法があると思いますが、フォームタグを削除するとうまくいきました。これで、キープレス イベントが適切な popUpEdit ウィンドウで機能するようになりました。ありがとう

于 2013-02-05T00:53:36.037 に答える