注意:据我所知,正确的替代标题可能是:
“如何通过客户端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">
我已经结束了以下解决方案。解决了如何访问Kendo网格内部内联形式的内部jquery验证器对象的主要问题。进一步的改进是可能的。
以下功能附加到剑道网格的“编辑”事件。我已经尝试使用网格的“保存”或“saveChanges”事件,但不幸的是,如果在内联表单中发生jQuery验证错误,则不会触发任何事件。
所以我使用验证器的验证事件本身,并在编辑事件发生时绑定验证处理程序。 (似乎是为内联表单即时创建的验证器,而不是重用。)
Kendo grid的“编辑”事件附加了以下功能:
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]
}
});