如何为剑道网格编辑器配置自定义验证规则



我们有 ASP.NET MVC应用程序使用Telerik UI ASP.NET MVC。在页面上设置了一个带有弹出编辑器的网格,由 kendo html 助手。

现在我需要为弹出编辑器表单配置一些自定义验证规则。我找不到办法。

  • 在验证器文档中可以看到从$("form")获取验证器引用。但是网格弹出窗口中没有形式
  • 如果我配置从$("gridName").kendoValidator().data("kendoValidator")获取的验证器的规则,则在保存编辑器更改时根本不会触发此类规则
  • 例如,如果我从某些编辑器容器gridOnEditEvent.container.find("#editorcontent").kendoValidator().data("kendoValidator")获得对验证器的引用,我可以扩展规则,手动验证和发送表单数据,但是弹出编辑器的标准保存按钮不能反映这种配置

如何扩展网格弹出编辑器验证器的验证规则?

使用

HTML 帮助程序(如网格(构建的剑道小部件初始化自己的内部验证器。必须将自定义规则添加到验证程序类本身,才能在这些无法访问的验证程序实例中运行。Telerik 有一个如何做到这一点的例子:

$.extend(true, kendo.ui.validator, {
  rules: { // custom rules
    productnamevalidation: function(input, params) {
      if (input.is("[name='ProductName']") && input.val() != "") {
        input.attr("data-productnamevalidation-msg", "Product Name should start with capital letter");
        return /^[A-Z]/.test(input.val());
      }
      return true;
    }
  },
  messages: { //custom rules messages
    productnamevalidation: function(input) {
      // return the message text
      return input.attr("data-val-productnamevalidation");
    }
  }
});

最新更新