Kendo ui 验证不需要';无法在Jquery中处理剑道网格UI的KeyDown事件

Kendo ui 验证不需要';无法在Jquery中处理剑道网格UI的KeyDown事件,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我正在MVC中为Jquery使用剑道UI。下面的代码工作正常,可以通过“回车”和“制表”按键事件移动下一个单元格,但无法通过按键事件进行验证,因此如果有任何解决方案,请与我共享。 可编辑模式为“incell” 提前谢谢 $("#grdSalesManRoute").data("kendoGrid").addRow(); var grid = $("#grdSalesManRoute").data('kendoGrid'); $(grid.tbody).on("keydown",

我正在MVC中为Jquery使用剑道UI。下面的代码工作正常,可以通过“回车”和“制表”按键事件移动下一个单元格,但无法通过按键事件进行验证,因此如果有任何解决方案,请与我共享。 可编辑模式为“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));
                }
            }
        }
    });
$(“#grdSalesManRoute”).data(“kendoGrid”).addRow();
var grid=$(“#grdSalesManRoute”).data('kendoGrid');
$(grid.tbody).on(“向下键”,“td”,函数(e){
如果(e.keyCode==kendo.keys.ENTER | | e.keyCode==kendo.keys.TAB | | | |(e.shiftKey&&e.which==kendo.keys.TAB)){
调试器;
if(e.keyCode==kendo.keys.TAB){
e、 预防默认值()
}
if(e.keyCode==kendo.keys.ESC){
colIndex++;
方向=“h”;
}
var行=$(此).tr;
var rowIndex=$(“tr”,grid.tbody).index(行);
var colIndex=$(“td”,行)。索引(本);
var方向=”;
grid.closeCell();
if(e.shiftKey&&e.which==kendo.keys.TAB){
科林德斯--;
方向=“h”;
}
else if(e.keyCode==kendo.keys.ENTER | | e.keyCode==kendo.keys.TAB){
colIndex++;
方向=“h”;
}
if(colIndex==0&&rowIndex<$(“#grdSalesManRoute”).data(“kendoGrid”).dataSource.total(){
行索引--;
colIndex=4;
}
否则如果(colIndex==5){
if($(“#grdSalesManRoute”).data(“kendoGrid”).dataSource.total()-1>行索引){
rowIndex++;
colIndex=1;
}
}
var单元=$(“#grdSalesManRoute tbody tr:eq(“+rowIndex+”)td:eq(“+colIndex+”));
如果(单元格长度>0){
网格编辑单元(cell);
}
否则{
var=”;
如果(方向=“h”){
$(“#grdSalesManRoute”).data(“kendoGrid”).addRow();
//cellSelector=“#grdSalesManRoute tbody tr:eq(“+rowIndex+”)td:eq(1)”;
}
否则{
cellSelector=“#grdSalesManRoute tbody tr:eq(0)td:eq(“+colIndex+”);
editCell($(cellSelector));
}
}
}
});

最后,我通过以下代码解决了我的问题。我希望这能帮助别人

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

你能评论一下这个脚本的哪一部分(验证)不起作用吗?@Keith我在剑道网格模式中使用require-validation,比如“DayId:{type:'number”,validation:{required:true}”,但不适用于上面的代码。