Привязать добавление обязательного атрибута к элементу

0

Возможно ли связать видимость требуемого атрибута HTML5 для элемента с использованием MVCM Kendo UI?

Обязательный атрибут, находящийся в элементе, указывает, что требуется значение для этого элемента. Технически атрибут должен иметь значение "требуется".

С пользовательским интерфейсом Kendo я могу привязать значение к атрибуту с помощью

<input data-bind="attr: { required: isFieldRequired }"/>

Однако это все еще выводит требуемый атрибут в визуализированном HTML, который не является тем, что я хочу (опять же, потому что он присутствует, указывает на необходимость).

Я могу прослушать событие изменения на источнике данных и вручную добавить или удалить атрибут с помощью jQuery и использовать значения в ViewModel, однако это не идеально.

Если есть способ связать, отображается ли атрибут, это было бы здорово!

Теги:
mvvm
kendo-ui

2 ответа

2
Лучший ответ

Используя ответ Атанаса Корчева (ссылка ниже), вам просто нужно добавить пользовательскую привязку, и это сработало для меня очень хорошо.

qaru.site/questions/6511335/...

Сначала добавьте пользовательскую привязку

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"/>

0

В соответствии с моим пониманием вам необходимо использовать

data-bind="attr: {data-required-msg:insuranceEmailRequiredMsg,validationMessage:insuranceValidationMessage}"

И js: in viewmodel observable определяют эти два атрибута:

insuranceRequiredMsg:"Msg is required"
insuranceValidationMessage:"Msg is invalid"
  • 0
    Нет - добавление data-required-msg не устанавливает обязательный атрибут. Я также не уверен, что вы можете таким образом привязать атрибуты данных.
  • 0
    Я только что закончил использовать viewmodel, чтобы передать список обязательных полей. Хотя это и не здорово, это просто означает, что я могу установить все поля, необходимые во время загрузки, и это все, что мне действительно нужно. Затем при загрузке просто используйте jQuery, чтобы установить обязательный атрибут, если он найдет указанный элемент управления.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню