在元素上绑定所需属性的添加

Jon*_*art 2 jquery mvvm kendo-ui

是否可以使用Kendo UI MVVM在元素上绑定HTML5必需属性的可见性?

元素上的required属性表示该元素的值是必需的。从技术上讲,该属性的值也应为“ required”。

使用Kendo UI,我可以将值绑定到属性

<input data-bind="attr: { required: isFieldRequired }"/>
Run Code Online (Sandbox Code Playgroud)

但是,这仍然在呈现的HTML中输出required属性,这不是我想要的(再次,因为它存在表明需要)。

我可以侦听dataSource上的change事件,并使用jQuery和ViewModel上的值手动添加或删除属性,但这并不理想。

如果有一种方法可以绑定是否渲染属性,那就太好了!

小智 5

使用Atanas Korchev的答案(下面的链接),您只需添加自定义绑定,然后对我来说效果很好。

/sf/answers/1116349671/

首先添加自定义绑定

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");
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

然后在您的输入上使用所需的属性

<input data-bind="required: isRequired"/>