Подсказка для проверки kendoui в настраиваемом всплывающем редакторе, не правильно позиционирующем

Пожалуйста, смотрите jsfiddle, например, пустое поле "Имя", чтобы показать всплывающую подсказку проверки. В обычной форме подсказка проверки правильности располагается справа от каждого элемента. Но в всплывающем редакторе для сетки он все еще пытается расположить всплывающую подсказку под элементом, как если бы он редактировал встроенную. Я пробовал <span class="k-invalid-msg" data-for="FirstName"></span>, но ничего не изменил. Есть ли параметр, который мне не хватает, чтобы заставить это работать в popupeditor? Я предполагаю, что могу вручную модифицировать подсказку .k-tooltip, но я надеюсь на что-то более встроенное, которое правильно управляет позиционированием, потому что я не очень хорошо разбираюсь в css.

Ответ 1

Как вы обнаружили, шаблон ошибки для сетки отличается от шаблона ошибки, предоставляемого валидатором кендо при применении к стандартным входам.

К сожалению, валидатор, созданный внутри сетки, не проходит по любой шаблону ошибки, который вы можете определить в объекте параметров, и к моменту возникновения события "редактирования" валидатор уже создан и шаблон ошибки скомпилирован, поэтому почему установка errorTemplate в том виде, который вы описываете, не работает. Действительно, я думаю, что сетка Кендо должна уважать любую пользовательскую опцию errorTemplate, но пока нам не придется немного взломать.

Ключ состоит в том, чтобы определить настраиваемый шаблон и применить его в событии редактирования, но вместо использования объекта options напрямую установите частный экземпляр. Не идеально, но он работает:

edit: function (e) {
    e.sender.editable.validatable._errorTemplate = 
         kendo.template($('#tooltip-template').html());
}

См. этот обновленный скрипт для примера того, что, по вашему мнению, вы можете добиться.

http://jsfiddle.net/nukefusion/eQ2j7/10/

Ответ 2

(Я бы опубликовал это как комментарий, но еще недостаточно репутации...)

Я успешно использую nukefusion. Я тоже долго сражался с синтаксической ошибкой из jQuery и обнаружил через отладку, что важно определить шаблон. В частности, кажется, что шаблон должен быть записан на одной строке без какого-либо форматирования, как в:

<script id="tooltip-template" type="text/x-kendo-template"><span class="k-widget k-tooltip k-tooltip-validation"><span class="k-icon k-warning"></span>#=message#</span></script>

Если вы попытаетесь сделать это "красивым" и отформатируете html в шаблоне, вы получите синтаксическую ошибку. Я не знаю, где настоящая ошибка, так как такая вещь не должна вызывать ошибки. Но это так, и я перестала беспокоиться об этом, как только я заработал правильно.