取消选中 KNOCKOUT JS 中的复选框

unchecking checkbox in knockout js

本文关键字:复选框 JS KNOCKOUT 取消      更新时间:2023-09-26

html

<input id="checkbox" name="claimcheckbox" type="checkbox" data-bind="checked: IsclaimcheckboxSubscribe,visible: Authorization.IsclaimcheckboxAuthorized" />

爪哇脚本

IsclaimcheckboxSubscribe = ko.observable();
IsclaimcheckboxSubscribe.subscribe(function (newvalue) {
    claimcheckboxSelection(newvalue);
});
function claimcheckboxSelection(newvalue) {
    if (newvalue) {
        if (claimcheckboxConfirmation()) {
            //Do something
        } else {
            do other thing
        }
    } else {}

    function claimcheckboxConfirmation() {
        var claimcheckboxvalue = confirm("Do you want to process?");
        //if yes
        if (claimcheckboxvalue) {
            return true;
        } else {
            //if no
            return false;
        }
    }

现在的问题是消息确认时

是否要处理?

有"是"

和"否"按钮,当我单击"是"时,我想取消选中该复选框。我试过了Isclaim复选框订阅(假);但它没有用。

请注意,我没有使用jquery。所以我想通过使用 ncheck 通过使用 KOUT js 复选框来检查。有人可以帮忙吗!

这里似乎有几个问题。

  1. 没有模型设置
  2. 没有对应用绑定的调用
  3. 声明复选框选择缺少}

我能够通过创建一个模型并在该模型上应用挖空绑定来使其工作。

var model = (function (){
    var self = {};
    self.IsclaimcheckboxSubscribe = ko.observable();    
    self.IsclaimcheckboxSubscribe.subscribe(function (newvalue) {
        claimcheckboxSelection(newvalue);
    });
    return self;
})();
ko.applyBindings(model);

然后在声明复选框选择方法中,我能够按照您的预期设置值model.IsclaimcheckboxSubscribe(false)

function claimcheckboxSelection(newvalue) {
    if (newvalue) {
        if (claimcheckboxConfirmation()) {
            // Do Something
        } else {
            model.IsclaimcheckboxSubscribe(false);
        }
    } else {}
}

工作 jsfiddle: http://jsfiddle.net/infiniteloops/JfXQv/