Я использую DropDownList для поля, которое я редактирую в всплывающем окне сетки Kendo UI, и хотя всплывающие подсказки проверки отображаются без проблем, они не исчезают один раз вход был исправлен.Kendo UI grid popup, сообщение проверки валида DropDownList не очищается
Я создаю DropDownList так:
function serviceDropDownEditor(container, options) {
$('<input data-bind="value:' + options.field + '" data-for="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
optionLabel: "--- select a service ---",
dataTextField: "name",
dataValueField: "id",
dataSource: window.services, // an array I've already fetched from my DB
});
}
Я применить эту функцию к полю service_id
, когда я определить источник данных, например:
columns: [
{ field: "service_id",
title: "Service",
editor: serviceDropDownEditor,
template: "#= getServiceName(service_id) #" // display the name from the id
},
Чтобы убедиться, что есть место для размещения подтверждения, я использую the suggestion on this page и добавьте прокладку подставщика ниже DropDownList во время события edit
:
edit: function(e) {
var grid = $("#grid").data("kendoGrid")
var container = grid.editable.element
var service_container= container.find("[data-container-for=service_id]")
service_container.append('<span class="k-invalid-msg", data-for="#= field #">')
},
Когда есть ошибка стороне сервера, который относится к этой области (service_id
), я нахожу заполнитель, который я создал в edit
случае и заменить его на реальное сообщение, как это:
var placeholder = container.find("[data-for=" + field + "].k-invalid-msg")
placeholder .replaceWith(validationMessageTmpl({ field: field, message: errors[field] }))
шаблон шаблона проверки содержит те же классы и атрибут data-for
как заполнитель.
Он отлично работает при отображении ошибки для DropDownList, но когда я исправляю ошибку (и представляю другую в той же форме, поэтому всплывающее окно остается), исходная ошибка не исчезает.
Итак ... как всплывающие подсказки проверки будут очищены, и что мне нужно сделать? Удалить это вручную в случае?