绑定元素上必需属性的添加

时间:2013-12-18 01:53:47

标签: jquery mvvm kendo-ui

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

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

使用Kendo UI,我可以使用

将值绑定到属性
<input data-bind="attr: { required: isFieldRequired }"/>

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

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

如果有办法绑定是否呈现属性,那就太棒了!

2 个答案:

答案 0 :(得分:4)

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

  

https://stackoverflow.com/a/15947852/2692411

首先添加自定义绑定

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

答案 1 :(得分:0)

根据我的理解,你需要使用

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

并且js:在viewmodel observable中定义了这两个属性:

insuranceRequiredMsg:"Msg is required"
insuranceValidationMessage:"Msg is invalid"