如何在 kendo 数据绑定函数中查找元素
How to find the element in kendo data binding function
在我正在处理的应用程序中,我需要在两种不同情况之一下禁用元素,一种是登录用户仅对表单具有只读访问权限,另一种是在字段上设置条件逻辑被满足。这些表单是动态生成的,构建在带有拖放字段的管理面板上。
我遇到的问题是满足条件逻辑情况但表单不是只读的。在我现在尝试的情况下,如果重新打开表单(已保存),它会禁用某些字段。
输入如下所示:
<input name="userName" id="userName" maxlength="64" type="text" class="k-textbox custom-disable" data-bind="value: formData.userName, disabled: isFormDisabled">
条件逻辑在输入上设置禁用 属性,并为 CSS 添加自定义禁用 class。 isFormDisabled 是 viewModel 的布尔值 属性。
我想做的是创建一个这样的函数:
ViewModel = kendo.observable({
...,
isFormDisabled: false,
isElementDisabled: function (e) {
var customDisabled = $(e.target).hasClass( "custom-disable" );
return this.get("isEventDisabled")||customDisabled;
},
...
});
并更改 disabled 到这个新函数的绑定,但由于 disabled 不是事件,当我记录 e 时它是未定义的 - 我如何找到绑定到回调迭代的元素?
目前 Kendo 对 enable/disable 个元素有自己的方式,例如 this explains how to enable/disable a Kendo Combobox
这就是我最终弄清楚的 - 对于函数:
isElementDisabled: function (eID) {
var me = this;
var element = $("#" + eID);
var customDisabled = $(element).hasClass("custom-disable");
return me.get("isEventDisabled") || customDisabled;
},
和绑定 -
<input name="#: columnName #" id="#: columnName #"
data-bind='value: #: dataContainer #.#: columnName #, disabled: isElementDisabled("#: columnName #")'
/>
由于元素的 ID 与列名匹配并且是唯一的,我可以通过将该 ID 作为 属性.
传递给绑定函数来找到它
在我正在处理的应用程序中,我需要在两种不同情况之一下禁用元素,一种是登录用户仅对表单具有只读访问权限,另一种是在字段上设置条件逻辑被满足。这些表单是动态生成的,构建在带有拖放字段的管理面板上。
我遇到的问题是满足条件逻辑情况但表单不是只读的。在我现在尝试的情况下,如果重新打开表单(已保存),它会禁用某些字段。
输入如下所示:
<input name="userName" id="userName" maxlength="64" type="text" class="k-textbox custom-disable" data-bind="value: formData.userName, disabled: isFormDisabled">
条件逻辑在输入上设置禁用 属性,并为 CSS 添加自定义禁用 class。 isFormDisabled 是 viewModel 的布尔值 属性。
我想做的是创建一个这样的函数:
ViewModel = kendo.observable({
...,
isFormDisabled: false,
isElementDisabled: function (e) {
var customDisabled = $(e.target).hasClass( "custom-disable" );
return this.get("isEventDisabled")||customDisabled;
},
...
});
并更改 disabled 到这个新函数的绑定,但由于 disabled 不是事件,当我记录 e 时它是未定义的 - 我如何找到绑定到回调迭代的元素?
目前 Kendo 对 enable/disable 个元素有自己的方式,例如 this explains how to enable/disable a Kendo Combobox
这就是我最终弄清楚的 - 对于函数:
isElementDisabled: function (eID) {
var me = this;
var element = $("#" + eID);
var customDisabled = $(element).hasClass("custom-disable");
return me.get("isEventDisabled") || customDisabled;
},
和绑定 -
<input name="#: columnName #" id="#: columnName #"
data-bind='value: #: dataContainer #.#: columnName #, disabled: isElementDisabled("#: columnName #")'
/>
由于元素的 ID 与列名匹配并且是唯一的,我可以通过将该 ID 作为 属性.
传递给绑定函数来找到它