Kendo验证器未处理文本更改



我正在为我的项目使用剑道控件。我在客户端使用jquery验证来验证我的控件,但由于jquery验证不适用于kendo控件,所以我使用kendo验证器来验证控件。

我在MVC 5项目中使用数据注释验证。这是示例dojo。

它工作得很完美,但验证只出现在焦点偏离或模糊事件上。是否有任何方法可以像jquery验证一样验证控件的值更改?

更新:

以下是帮助我解决此问题的完整解决方案:

if ($.validator !== undefined) {
$.validator.setDefaults({
ignore: [],
highlight: function (element, errorClass) {
element = $(element);
var highLightElement;
if (element.parent().hasClass("k-picker-wrap") ||
element.parent().hasClass("k-numeric-wrap")) {
highLightElement = element.parent().parent();
}
else if (element.parent().hasClass("k-widget")) {
highLightElement = element.parent();
} else if (element.parent().children('.k-upload-empty').length > 0) {
highLightElement = $(element.parent().children('.k-upload-empty')[0]);
} else {
highLightElement = element;
}
highLightElement.addClass('input-validation-error');
},
unhighlight: function (element, errorClass) {
element = $(element);
var highLightElement;
if (element.parent().hasClass("k-picker-wrap")
|| element.parent().hasClass("k-numeric-wrap")) {
highLightElement = element.parent().parent();
}
else if (element.parent().hasClass("k-widget")) {
highLightElement = element.parent();
} else {
highLightElement = element;
}
highLightElement.removeClass('input-validation-error');
}
});
}

你有两种方法来实现你的目标:

使用jQuery Unobtrusive Validation与KendoUI

背景

正如您所知,Kendo UI编辑器创建的元素与HTML表单元素不同。其他JavaScript编辑器也以类似的方式工作。实际的HTML是使用CSS(display: none;)隐藏的,这就是问题所在默认情况下,jQuery Validation会忽略隐藏的输入字段。表单元素上有validation data-*属性,,但由于它是隐藏的,当触发不引人注目的验证时,编辑器将被忽略

解决方案

您有两种方法可以解决这个问题,并且可以完美地使用这两种技术。阅读《让Kendo UI编辑器与jQuery验证一起工作》,如果您在实现方面有任何问题,请阅读Kendo UI NumericTextBox With jQuery Validation作为NumericTextBox的示例

然后,在验证的情况下,您可能会遇到分配正确CSS类的问题。您可以阅读向kendoui元素添加jquery验证。

仅使用KendoUI验证器

您应该为验证目的实现所需的事件。在这里,您需要onChange事件才能像jQuery Unobtrusive Validation一样工作。使用以下代码描述要做的操作:

$(document).ready(function () {
function widgetChange() {
//place validation logic
};
$("#dropdownlist").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: data,
change: widgetChange
});
})

您可能想同时使用它们!请看一下.Net Mvc 3触发器(而不是提交按钮)Unobtrusive Validation

更新

使用最后一个解决方案实现的dojo,该解决方案将pattern="d+"添加到带有验证消息的搜索输入中。验证由filtering事件为同一输入调用请注意,您应该使用基于UI元素的所需事件,这里我们使用filtering进行自动完成,而不是使用change进行DropDownList。

我最近发现了一个新的实现,它看起来很好尝试和测试。这可以在aspnetmvc开始验证中获得

相关内容

  • 没有找到相关文章

最新更新