是否可以使用Kendo UI MVVM绑定元素上HTML5必需属性的可见性?
元素上的必需属性表示该元素的值是必需的。从技术上讲,该属性的值也应为'required'。
使用Kendo UI,我可以使用
将值绑定到属性<input data-bind="attr: { required: isFieldRequired }"/>
但是,这仍然会在呈现的HTML中输出所需的属性,这不是我想要的(再次,因为它存在表示必要性)。
我可以在dataSource上侦听change事件,并使用jQuery手动添加或删除属性并使用ViewModel上的值,但这并不理想。
如果有办法绑定是否呈现属性,那就太棒了!
答案 0 :(得分:4)
使用Atanas Korchev的答案(下面的链接)你只需要添加自定义绑定,然后它对我来说效果很好。
首先添加自定义绑定
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"