Возможно ли связать видимость требуемого атрибута HTML5 для элемента с использованием MVCM Kendo UI?
Обязательный атрибут, находящийся в элементе, указывает, что требуется значение для этого элемента. Технически атрибут должен иметь значение "требуется".
С пользовательским интерфейсом Kendo я могу привязать значение к атрибуту с помощью
<input data-bind="attr: { required: isFieldRequired }"/>
Однако это все еще выводит требуемый атрибут в визуализированном HTML, который не является тем, что я хочу (опять же, потому что он присутствует, указывает на необходимость).
Я могу прослушать событие изменения на источнике данных и вручную добавить или удалить атрибут с помощью jQuery и использовать значения в ViewModel, однако это не идеально.
Если есть способ связать, отображается ли атрибут, это было бы здорово!
Используя ответ Атанаса Корчева (ссылка ниже), вам просто нужно добавить пользовательскую привязку, и это сработало для меня очень хорошо.
Сначала добавьте пользовательскую привязку
kendo.data.binders.required = kendo.data.Binder.extend({
refresh: function() {
var required = this.bindings.required.get();
if (required) {
this.element.setAttribute("required", "required");
} else {
this.element.removeAttribute("required");
}
}
});
Затем на вашем входе просто используйте требуемый атрибут
<input data-bind="required: isRequired"/>
В соответствии с моим пониманием вам необходимо использовать
data-bind="attr: {data-required-msg:insuranceEmailRequiredMsg,validationMessage:insuranceValidationMessage}"
И js: in viewmodel observable определяют эти два атрибута:
insuranceRequiredMsg:"Msg is required"
insuranceValidationMessage:"Msg is invalid"