注意:据我所知,正确的替代标题可能是:
"如何通过客户端javascript访问jQuery验证器对象,Kendo网格用于行内联编辑的内容是什么?"
上下文
我可以使用数据源错误捕获(处理)服务器端验证错误并在通知中显示它们。我想在类似的通知中显示所有客户端验证错误。
如下面的代码禁止显示,它似乎是一个标准的jQuery验证。我仍然不知道如何将处理程序附加到现有网格。
问题
客户端验证错误似乎不触发了数据源错误事件。
如何编写处理程序来迭代客户端验证错误并以自定义方式显示它们?
其他信息
处理服务器端错误正在处理数据源错误事件 然而,当"只有"发生客户端验证错误。
这是导致客户端验证错误的字段:
这是该字段的相应html,其中包含验证属性:
<input class="k-textbox form-control"
data-val="true"
data-val-length="First Name should be maximum 30 characters"
data-val-length-max="30"
data-val-regex="Enter at least 3 characters. Use only alphabets and ,.'- characters"
data-val-regex-pattern="[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]{3,}"
data-val-required="The First Name field is required."
id="FirstName"
name="FirstName"
data-bind="value:FirstName">
答案 0 :(得分:-1)
我已经结束了以下解决方案。 主要问题是如何访问Kendo网格内部内联表单的内部jquery验证器对象。可以进一步改进。
以下功能附加到剑道网格&#34;编辑&#34;事件。我尝试过使用网格&#34;保存&#34;或&#34; saveChanges&#34;事件但不幸的是,如果在内联表单中发生jQuery验证错误,则不会触发任何事件。
所以我使用验证器的验证事件本身,并在编辑事件发生时绑定验证处理程序。 (似乎是为内联表单即时创建的验证器,而不是重用。)
以下功能附加到剑道网格&#34;编辑&#34;事件:
function (e) {
var validatable = e.sender.editable.validatable;
validatable.bind("validate", function (e) {
var errors = e.sender.errors();
for (var i = 0; i < errors.length; i++) {
// do whatever you want with errors[i]
}
});