gpt4 book ai didi

javascript - 使用订阅的 Knockout Js 复选框验证

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:35:26 24 4
gpt4 key购买 nike

我正在尝试验证是否应选中一个复选框,我正在使用订阅,但我不确定为什么它不起作用,我尝试了一个带有文本字段的类似逻辑并且它起作用了。我创建了一个小演示:

<input type ="checkbox" data-bind="checked: IsSelected"/>
<input type ="text" data-bind="value: Name"/>

var model = {
IsSelected : ko.observable(false),
Name: ko.observable("")
}
var demo = 1;
model.IsSelected.subscribe(function(value){
if (demo == 2 && value){
model.IsSelected(false);
}
demo = 2;
});
model.Name.subscribe(function(value){
if (value == "Set"){
model.Name("Jose");
}
})
ko.applyBindings(model);

http://jsfiddle.net/Xepe/9YXTW/

我不确定我是否做错了什么。

提前致谢。

最佳答案

我认为该事件在浏览器更新复选框之前触发,因此即使 IsSelectedfalse,它最终看起来已被选中。一种解决方法是使用 _.delaysetTimeout 延迟将复选框恢复为 false:

model.IsSelected.subscribe(function(value){
if (demo == 2 && value){
setTimeout(function () { model.IsSelected(false); }, 0);
}
demo = 2;
});

http://jsfiddle.net/9YXTW/17/

关于javascript - 使用订阅的 Knockout Js 复选框验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19982745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com