Проверка не работает для события KeyDown интерфейса Kendo Grid в Jquery - PullRequest
0 голосов
/ 04 июня 2018

Я использую Kendo UI для Jquery в MVC.Код ниже работает нормально, чтобы переместиться в следующую ячейку с событием нажатия клавиши «Ввод» и «Вкладка», но не работает проверка с нажатием клавиши, так что если есть решение, пожалуйста, поделитесь со мной.Редактируемый режим «incell».

Заранее спасибо!

$("#grdSalesManRoute").data("kendoGrid").addRow();
    var grid = $("#grdSalesManRoute").data('kendoGrid');
    $(grid.tbody).on("keydown", "td", function (e) {

        if (e.keyCode == kendo.keys.ENTER || e.keyCode == kendo.keys.TAB || (e.shiftKey && e.which == kendo.keys.TAB)) {
            debugger;
            if (e.keyCode == kendo.keys.TAB) {
                e.preventDefault()
            }

            if (e.keyCode == kendo.keys.ESC) {
                colIndex++;
                direction = "h";
            }

            var row = $(this).closest("tr");
            var rowIndex = $("tr", grid.tbody).index(row);
            var colIndex = $("td", row).index(this);
            var direction = "";
            grid.closeCell();
            if (e.shiftKey && e.which == kendo.keys.TAB) {
                colIndex--;
                direction = "h";
            }
            else if (e.keyCode == kendo.keys.ENTER || e.keyCode == kendo.keys.TAB) {
                colIndex++;
                direction = "h";
            }

            if (colIndex == 0 && rowIndex < $("#grdSalesManRoute").data("kendoGrid").dataSource.total()) {
                rowIndex--;
                colIndex = 4;
            }
            else if (colIndex == 5) {
                if ($("#grdSalesManRoute").data("kendoGrid").dataSource.total() - 1 > rowIndex) {
                    rowIndex++;
                    colIndex = 1;
                }
            }

            var cell = $("#grdSalesManRoute tbody tr:eq(" + rowIndex + ") td:eq(" + colIndex + ")");

            if (cell.length > 0) {
                grid.editCell(cell);
            }
            else {
                var cellSelector = "";

                if (direction == "h") {
                    $("#grdSalesManRoute").data("kendoGrid").addRow();
                    // cellSelector = "#grdSalesManRoute tbody tr:eq(" + rowIndex + ") td:eq(1)";
                }
                else {
                    cellSelector = "#grdSalesManRoute tbody tr:eq(0) td:eq(" + colIndex + ")";
                    grid.editCell($(cellSelector));
                }
            }
        }
    });

1 Ответ

0 голосов
/ 05 июня 2018

Наконец, я решил мою проблему с помощью следующего кода.Надеюсь, это кому-нибудь поможет.

 if ($(".k-edit-cell").data().kendoValidator.validate() == false) {
     return false;
 }
...