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

Posted

技术标签:

【中文标题】绑定在元素上添加必需属性【英文标题】: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 上的值手动添加或删除属性,但这并不理想。

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

【问题讨论】:

【参考方案1】:

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

https://***.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设置所需的属性。 我不清楚你的问题。您想将值设置为必需的属性吗?能解释清楚吗?

以上是关于绑定在元素上添加必需属性的主要内容,如果未能解决你的问题,请参考以下文章

JSF 动态绑定命令按钮

如何在一个元素上拥有多个数据绑定属性?

WPF学习第三十章 元素绑定——绑定到非元素对象

jQuery1.9为动态添加元素绑定事件以及获取和操作checkbox的选择属性

WPF学习第三十章 元素绑定——绑定到非元素对象

jQuery1.9为动态添加元素绑定事件以及获取和操作checkbox的选择属性11