javascript - Kendo UI,如何在 kendo 网格单元格上手动调用 validate()

标签 javascript jquery validation kendo-ui kendo-grid

是否可以在不使用 editCell() 方法的情况下在 kendo-grid 中的单元格上调用 validate()

Telerik团队推荐的validator调用方式如下:

$("myGrid").data("kendoGrid").editable.validatable.validate()

但是,如果没有单元格打开(例如,网格中没有焦点输入),则没有可编辑对象可用,所以我必须通过一个调用 validate()

我想在每个网格单元格上调用验证并运行一些逻辑(例如 addClass())

如果我 jquery 循环遍历网格中的所有 td 元素并调用 validate(),我就会成功,如下所示:

    $(".k-grid-content td").each(function () {
            var cell = $(this);
            grid.editCell(cell);
            if (!grid.editable.validatable.validate()) {
                cell.addClass("cell-invalid");                 
            };
            grid.closeCell(cell);
        });

但是这段代码并不优雅,而且慢得令人痛苦

我想要实现的是 提交时的网格验证

问题 再一次:我可以在每个网格单元格上运行 kendo 验证程序,而无需反复进入和离开编辑模式吗?

PS:我正在使用批量编辑(incell)模式

最佳答案

我对此进行了更深入的研究,但无法在 native 支持此批处理验证的网格文档中找到任何内容。一般来说,网格格式旨在逐行处理数据,它反射(reflect)了关系数据库表/电子表格类型的数据表示。考虑到这一点,典型的插入/编辑/验证/删除操作旨在一次对单个行或记录执行。

我的回答是:没有。如果不为每个需要验证的单元格重复进入和离开编辑模式,则无法运行 Kendo 验证。

如果您能深入研究 Kendo JS 库并弄清楚验证是如何调用的,并创建一些自定义方法以批处理方式调用它,您也许能够做到。下一次 Kendo 更新发布时,类似的东西可能会崩溃。

为了加快速度,您可能必须想出一种巧妙的方法来验证输入的数据;或者在 blur 上;或者使用 setTimeout 作为“后台”任务;或者将数据打包并通过 Ajax 将其发送回服务器,然后以某种方式处理返回消息。

祝你好运!

关于javascript - Kendo UI,如何在 kendo 网格单元格上手动调用 validate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22865867/

相关文章:

javascript - 如何像gmail一样删除javascript代码?

Javascript 按算法排序,jquery 也许

javascript - jQuery 从浏览器检测最大化和恢复按钮

javascript - 如何将导入的样式表应用于自定义元素的模板标签内容?

Javascript Web Workers 修改全局对象

javascript - 如何使用 HTML 中的 JSON 外部文件填充下拉按钮

javascript - 从文件 ://URL 运行的应用程序发出的请求的 “Origin null is not allowed by Access-Control-Allow-Origin” 错误

javascript - 有人建议我使用 Jquery 来验证我的表单,但它不起作用,我该如何修复?

php - 针对 JSON 模式的 JSON 验证

java - 如何使用 javax.validation 将 @NotNull 约束应用于类中的所有字段?