После того, как Ввод становится Неверным в HTML5, установите сообщение об ошибке и предотвратите сообщение об ошибке по умолчанию от кендо в сетке
Я придерживался встроенной проверки в сетке кендо. Я не хочу проверять после потери фокуса. Я хочу проверить сразу после ввода. Поэтому я начинаю использовать валидатор HTML5. Это работает довольно хорошо, но проблема в том, что я не могу ответить на эти два вопроса:
какое событие установило входной сигнал от действительного до недействительного.
какое событие отображает сообщение об ошибке.
Моя текущая работа: https://dojo.telerik.com/OSONo/56
С уважением
Lukas
2 ответа
Решил мою проблему самостоятельно. Я отредактирую пост, чтобы вы могли видеть, что я имею в виду, но сначала я просто даю проект додзё.
https://dojo.telerik.com/OSONo/64
мое редактирование:
Я прошу прощения за мой предыдущий ответ, я просто хочу дать ему свое решение, которое я упоминаю в своем комментарии.
В моем решении я создал прослушиватель событий, как слушать все элементы ввода. Когда что-то изменило это, сохраняет текущую позицию курсора (его импорт для поддержки), и после этого он вызывает мое событие "изменения". Событие "изменение" проверяет, является ли оно действительным или недействительным. Если он недействителен, валидатор кендо сразу же показывает сообщение об ошибке (не по умолчанию для события размытия).
var ValidierungCheckClass = (function () {
return {
AllDOMElements: function () {
$('body').on('input', function () {
var myActiveElement = $(':focus');
if ((myActiveElement) && (myActiveElement.context.activeElement.nodeName.toLowerCase() !== "body")) {
var myActiveDOMElement = myActiveElement[0],
start = myActiveDOMElement.selectionStart, //just for IE Support
end = myActiveDOMElement.selectionEnd; //just for IE Support
myActiveElement.trigger("change");
myActiveDOMElement.setSelectionRange(start, end); //just for IE Support
}
})
}
}
});
Событие изменения уже создано из кендо, поэтому вам не нужно писать свое собственное.
По крайней мере, вы должны вызывать метод при создании сайта.
<script>
ValidierungCheckClass().AllDOMElements();
</script>
Это мое решение моей проблемы.
с уважением.
какое событие установило входной сигнал от действительного до недействительного.
...
какое событие отображает сообщение об ошибке.
Просто запустите ваш кендоВалидатор с validator.validate();
Сообщения об ошибках также устанавливаются с validate()
,
Примерно так должно работать:
$(document).on('input propertychange', function() {
validator.validate();
});
Кажется, что предупреждение скрыто за некоторыми элементами, поэтому вы также можете добавить следующую строку errorTemplate в свой kendoValidator:
errorTemplate: '<div class="k-widget k-tooltip k-tooltip-validation" style="margin: 0.5em; display: block;"><span class="k-icon k-i-warning"></span>#=message#<div class="k-callout k-callout-n"></div></div>'
И все решение: https://dojo.telerik.com/OSONo/66