【发布时间】:2018-04-20 10:05:04
【问题描述】:
在我正在处理的应用程序中,我需要在两种不同情况之一下禁用元素,一种是登录用户仅对表单具有只读访问权限,另一种是满足在字段上设置的条件逻辑.这些表单是动态生成的,构建在带有拖放字段的管理面板上。
我遇到的问题是条件逻辑案例已满足但表单不是只读的。在我现在尝试的情况下,如果表单正在重新打开(已经保存),则禁用某些字段。
输入看起来像这样:
<input name="userName" id="userName" maxlength="64" type="text" class="k-textbox custom-disable" data-bind="value: formData.userName, disabled: isFormDisabled">
条件逻辑在输入上设置 disabled 属性,并为 CSS 添加自定义禁用类。 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 时它是未定义的 - 我如何找到绑定到回调迭代的元素?
【问题讨论】:
-
函数
isElementDisabled中的e参数看起来像是事件的一部分(因为您尝试读取e.target)该函数如何绑定到您的页面?什么时候应该调用? -
data-bind="value: formData.userName, disabled: isElementDisabled"调用者是元素的禁用绑定,问题是当它进入函数时,e 未定义,这是我需要帮助的,我需要以某种方式找到使用此回调的元素,e.target 可能不是正确的方法,但它是我知道的我想要的示例,即使它目前不起作用。 -
e在这种情况下不应该是未定义的,你有一个带有你的代码的 jsfiddle/dojo 来查看错误来自哪里? -
Here it is in a dojo. 这至少应该让您更好地了解这一切是如何构建的。
标签: javascript jquery data-binding kendo-ui disabled-input