Javascript 敲除启用绑定不起作用
我无法使enable绑定在Knockout JS中工作。当enabled属性设置为false时,按钮未被禁用,我仍然可以单击它 看Javascript 敲除启用绑定不起作用,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我无法使enable绑定在Knockout JS中工作。当enabled属性设置为false时,按钮未被禁用,我仍然可以单击它 看 var ViewModel=函数(){ var self=这个; 自启用=可观测(假); self.isVisible=ko.observable(真); self.clicked=function(){ 警报(“您单击了按钮”); }; }; $(函数(){ var模型=新的ViewModel(); ko.应用绑定(模型); }) 绑定无法处
var ViewModel=函数(){
var self=这个;
自启用=可观测(假);
self.isVisible=ko.observable(真);
self.clicked=function(){
警报(“您单击了按钮”);
};
};
$(函数(){
var模型=新的ViewModel();
ko.应用绑定(模型);
})
绑定无法处理您想要的任何内容
这对于输入、选择和文本区域等表单元素非常有用
它也适用于按钮。就像我的例子一样
但它不适用于您的链接。您正在使用twitter引导,他们使用css类启用/禁用“按钮”。所以你必须这样使用:
data-bind="css: { yourClass: enabled }"
检查引导中哪个类负责显示您的“按钮”,并使用css绑定相应地修改您的代码。我通过将锚定标记更改为按钮使其工作,但不确定为什么这样做可以工作,但仍然可以工作 更新
萨尔瓦多在回答中说的话 您必须了解,通过在目标DOM元素上放置一个
disabled
属性,在敲除中启用和禁用
绑定是有效的。现在,如果您查看HTML文档,您会注意到并非所有HTML元素都支持此属性
实际上,只有表单元素(例如
)才可以<代码>
没有。右侧:
启用禁用 错: 启用
禁用
确保使用
禁用
而不是禁用
和启用
而不是启用
<input type="text" data-bind="value: foo, enable: isEditing"/> YES!!
<input type="text" data-bind="value: foo, enabled: isEditing"/> NO!
是!!
不
容易犯错误:-)对于可能在搜索中找到此项的人: 我在使enable绑定也工作时遇到了问题。我的问题是试图使用一个复杂的表达式,而不引用可观察的函数:
<input type="button" data-bind="enable:AreAllStepsVerified && IsFormEnabled, click:SubmitViewModel"/>
应该是:
<input type="button" data-bind="enable:AreAllStepsVerified() && IsFormEnabled(), click:SubmitViewModel"/>
请参阅:谢谢。我们得出了相同的结论,但你更快地做到了。这是旧的,但小提琴需要在按钮的数据绑定上加一个结束引号。这是有效的,因为
a
没有禁用启用选项。你要么使用bootstrap的css(正如我建议的),要么把它变成一个真正的按钮(就像你在这里改变的那样)。我至少每两个月就会忘记一次。
<input type="button" data-bind="enable:AreAllStepsVerified && IsFormEnabled, click:SubmitViewModel"/>
<input type="button" data-bind="enable:AreAllStepsVerified() && IsFormEnabled(), click:SubmitViewModel"/>