1

当我的输入值更新时,我试图调用一个函数。该函数将验证输入值并将标志设置为 true 或 false,这将用于 DOM 中的多个元素。

我一直在这里尝试建议的解决方案:

<input data-bind="event: { change: value_changed }, value: saved_value, valueUpdate: 'afterkeydown'" />

但它似乎不适用于afterKeyDown。它只在 unfocus 上调用函数,如您在此处看到的:http: //jsfiddle.net/imac/hY5T2/142/

我究竟做错了什么?

4

1 回答 1

3

这是您的JSFiddle的更新

<input data-bind="value: demo, valueUpdate: 'afterkeydown'" />


var viewModel = function () {
    var self = this;

    self.demo = ko.observable('');
    self.myFunction = function(){
        alert("fired");
    }
}

var VM = new viewModel();
ko.applyBindings(VM);

VM.demo.subscribe(function(){
    VM.myFunction();
});

我希望这是你想要的??

谢谢

编辑:

没有订户。没有订阅者的 JSFiddle

var viewModel = function () {

    var self = this;

    self.demo = ko.observable('');

    self.myFunction = function () {
        alert("fired");
    }

    self.worker = ko.computed(function () {
        if (self.demo()) self.myFunction();
    }, this);
}

var VM = new viewModel();
ko.applyBindings(VM);
于 2015-07-13T15:18:57.580 回答