【问题标题】:Bind the addition of required attribute on an element绑定在元素上添加必需属性
【发布时间】:2014-01-06 01:13:34
【问题描述】:

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

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

使用 Kendo UI,我可以使用

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

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

我可以监听数据源上的更改事件,并使用 jQuery 和 ViewModel 上的值手动添加或删除属性,但这并不理想。

如果有办法绑定一个属性是否被渲染,那就太好了!

【问题讨论】:

    标签: jquery mvvm kendo-ui


    【解决方案1】:

    使用 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");
        }
      }
    });
    

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

    &lt;input data-bind="required: isRequired"/&gt;

    【讨论】:

      【解决方案2】:

      据我了解,您需要使用

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

      和js:在viewmodel observable中定义这两个属性:

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

      【讨论】:

      • 不 - 添加 data-required-msg 不会设置所需的属性。我也不相信您实际上可以通过这种方式绑定到 data- 属性。
      • 我刚刚结束了使用视图模型来传递所需字段的列表。虽然它不是很好,但这只是意味着我可以在加载时设置所有所需的字段,这就是我的全部真的需要。然后在加载的时候,只要找到指定的控件,就用jQuery设置所需的属性。
      • 我不清楚你的问题。您想将值设置为必需的属性吗?能解释清楚吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多