使用knockout.js调用输入更改时的函数(valueUpdate)

时间:2015-07-13 15:02:05

标签: knockout.js knockout-3.0 knockout-3.2

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

我一直在尝试提出的解决方案here

avalon-framework

但它似乎并不适用于afterKeyDown。它只在非聚焦上调用函数,如下所示: http://jsfiddle.net/imac/hY5T2/142/

我做错了什么?

1 个答案:

答案 0 :(得分:2)

以下是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 without subscriber

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);