我在我的项目中使用了kendo控件。我在客户端使用jquery验证来验证我的控件,但由于jquery验证不适用于kendo控件,所以我使用kendo验证器来验证这些控件。
我正在使用MVC 5项目的数据注释验证。这是样本道场。
它工作得很好,但验证只出现在焦点突出或模糊事件上。有什么方法可以像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');
}
});
}发布于 2017-11-12 14:09:28
你有两种方法来达到你的目的:
使用jQuery和KendoUI进行非突出验证
背景
如您所知,Kendo编辑器创建与HTML表单元素不同的元素。其他JavaScript编辑器也以类似的方式工作。实际的HTML是使用CSS (display: none;)隐藏的,问题就在这里。默认情况下, jQuery验证忽略隐藏的输入字段。表单元素上有validation data-*属性,但是由于它是隐藏的,所以当不引人注目的验证触发时,编辑器就会被忽略。
解决方案
您有两种解决这个问题的方法,并且可以很好地使用这两种技术。阅读使Kendo编辑器与jQuery验证一起工作,如果您在实现方面有任何问题,请阅读带有jQuery验证的Kendo UI jQuery作为NumericTextBox的示例
然后,在验证的情况下,您可能会在分配适当的CSS类时遇到问题。你可以读向kendo ui元素添加jquery验证。
仅使用KendoUI验证器
您应该为验证目的实现所需的事件。在这里,您需要onChange事件来像jQuery那样进行不引人注目的验证。在描述要做什么时使用以下代码:
$(document).ready(function () {
function widgetChange() {
//place validation logic
};
$("#dropdownlist").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: data,
change: widgetChange
});
})您可能希望同时使用它们--!所以看一下.Net Mvc 3触发器(提交按钮除外)
更新
一个用最后一个解决方案实现的道场,它添加了一个pattern="\d+"来使用验证消息搜索输入。验证由filtering事件为同一输入调用。注意,您应该根据UI元素使用所需的事件,这里我们使用filtering for 自动完成,而不是使用change for DropDownList。
我最近发现了一个新的实现,它看起来很适合尝试和测试。可以在aspnet-mvc入门验证上找到
https://stackoverflow.com/questions/47157214
复制相似问题