【问题标题】:Kendo Grid Key enter key press event handlingKendo Grid Key 输入按键事件处理
【发布时间】:2015-12-23 05:57:23
【问题描述】:

我有一个剑道网格。我想处理回车键按下事件。如果用户在剑道单元格内按下回车键。它必须聚焦并将下一个单元格置于编辑模式。(光标应移动到下一个网格细胞)。 我试过这段代码

      $("#list").on("focus", "td", function (e) {         
     $("input").on("keydown", function (event) {
         if (event.keyCode == 13) {
             setTimeout(function () {
                 var curCell = $("#list").find(".k-state-selected")
                 var eCell = $("#list").find(".k-edit-cell")

                 curCell.removeClass("k-state-selected");
                 curCell.removeClass("k-state-focused");
                 curCell.removeAttr("data-role");
                 curCell.next().addClass("k-state-selected");
                 curCell.next().addClass("k-state-focused");
                 try {                         $('#list').data('kendoGrid').closeCell(eCell);
                 } catch (ex) {
                 }
                 $('#list').data('kendoGrid').select();                     
                 $('#list').data('kendoGrid').editCell(curCell.next());

             }, 50);

         }
     });
 });
 }

Demo

或者有什么方法可以用回车键覆盖 tab 键的功能(因为 tab 键可以正常工作)

【问题讨论】:

    标签: jquery kendo-ui telerik kendo-grid telerik-grid


    【解决方案1】:

    请尝试以下代码 sn-p。

    <!DOCTYPE html>
    <html>
    <head>
        <title>Jayesh Goyani</title>
        <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.common-bootstrap.min.css" />
        <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.bootstrap.min.css" />
        <script src="https://kendo.cdn.telerik.com/2015.2.902/js/jquery.min.js"></script>
        <script src="https://kendo.cdn.telerik.com/2015.2.902/js/kendo.all.min.js"></script>
    </head>
    <body>
        <div id="list"></div>
        <script>
            $(document).ready(function () {
                function onDataBound(e) {
                    $("#list").on("focus", "td", function (e) {
                        $("input").on("keydown", function (event) {
                            if (event.keyCode == 13) {
                                setTimeout(function () {
                                    var curCell = $("#list").find(".k-state-selected")
                                    var eCell = $("#list").find(".k-edit-cell")
    
                                    curCell.removeClass("k-state-selected");
                                    curCell.removeClass("k-state-focused");
                                    curCell.removeAttr("data-role");
                                    curCell.next().addClass("k-state-selected");
                                    curCell.next().addClass("k-state-focused");
                                    try {
                                        $('#list').data('kendoGrid').closeCell(eCell);
                                    } catch (ex) {
                                    }
                                    $('#list').data('kendoGrid').select(); $('#list').data('kendoGrid').editCell(curCell.next());
    
                                    if ($(curCell.next()).find('select')) {
                                        $($(curCell.next()).find('select')).data("kendoDropDownList").open()
                                    }
    
                                }, 50);
    
                            }
                        });
                    });
                }
    
                var savings = [{
                    month: "January",
                    saving: "$200",
                    kind: 1
                }, {
                    month: "March",
                    saving: "$100",
                    kind: 1
                }, {
                    month: "March sdjhf as dfjh;as",
                    saving: "$100",
                    kind: 1
                }, {
                    month: "March",
                    saving: "$100",
                    kind: 1
                }, {
                    month: "March",
                    saving: "$10000",
                    kind: 1
                }, {
                    month: "December",
                    saving: "$100",
                    kind: 1
                }, {
                    month: "March",
                    saving: "$100",
                    kind: 1
                }, {
                    month: "March",
                    saving: "$100",
                    kind: 2
                }, {
                    month: "March",
                    saving: "$100",
                    kind: 3
                }, {
                    month: "March",
                    saving: "$100",
                    kind: 1
                }];
    
                var savingsDataSource = new kendo.data.DataSource({
                    data: savings
                });
    
    
                var grid = $("#list").kendoGrid({
                    dataSource: savingsDataSource,
                    navigatable: true,
                    pageable: true,
                    height: 400,
                    selectable: "cell",
                    toolbar: ["create", "save", "cancel"],
                    columns: [{
                        field: "month",
                        title: "Month"
                    }, {
                        field: "saving"
                    }, {
                        field: "saving"
                    }, {
                        field: "kind",
                        values: [{
                            value: 1,
                            text: "Kind1"
                        }, {
                            value: 2,
                            text: "Kind2"
                        }, {
                            value: 3,
                            text: "Kind3"
                        }]
                    }],
                    editable: true,
                    dataBound: onDataBound,
    
                }).data("kendoGrid");
    
    
                var specialKeys = [kendo.keys.UP, kendo.keys.DOWN];
    
                function edit(e) {
                    //$("#list").find(".k-state-selected").focus();
                    //e.container.find("td:eq(1) input").focus();
    
                }
            });
        </script>
    </body>
    </html>
    

    如果有任何问题,请告诉我。

    【讨论】:

    • 它打开了剑道下拉列表,但它一直出现。即使我已经将我的课程移到另一个位置,打开的下拉列表仍然保持原样。即使我选择了一个下拉项。下拉列表保持打开状态。它无法关闭
    • 它不起作用。Kendo Dropdown 一直保持打开状态
    【解决方案2】:
      $("#GridID").keypress(function (e) {
                if (e.keyCode === 13) {
                    e.preventDefault();
                }
            });
    

    参考运行代码:

    https://www.telerik.com/forums/how-to-prevent-kendo-validation-on-pressing-enter-key

    http://dojo.telerik.com/@c0re/iMaBi

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多