1

html

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

Java 脚本

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;

        }
    }

现在的问题是消息确认时

你要处理吗?

有“是”和“否”按钮,当我单击“是”时,我想取消选中该复选框。我试过 IsclaimcheckboxSubscribe(false); 但它没有用。

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

4

1 回答 1

3

这里似乎有几个问题。

  1. 没有模型设置
  2. 没有调用 applybindings
  3. claimcheckboxSelection 缺少一个}

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

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

然后在 claimcheckboxselection 方法中,我能够按照您的预期设置值model.IsclaimcheckboxSubscribe(false)

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

    } else {}
}

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

于 2013-10-19T04:53:21.573 回答