无法访问knockoutjs中事件绑定中的当前项

时间:2016-12-15 06:33:50

标签: javascript html knockout.js

我试图在keypress事件绑定的处理函数中获取input元素的值

<input data-bind="textInput: searchInput, event: { keypress: filterList }" type="text" placeholder="Search..">

var ViewModel = function() {
    self.searchInput = ko.observable("");
    self.filterList = function(input) {
        console.log(input);
        return true;
    }
};

不打印输入字段的值,而是打印ViewModel对象 如何在filterList处理函数中获取每个按键上的输入字段的值?

1 个答案:

答案 0 :(得分:1)

由于您将input存储到self.searchInput并且它是observable,因此您可以直接在filterList处理程序中使用它 -

var ViewModel = function() {
var self = this;
    self.searchInput = ko.observable("");
    self.filterList = function() {
        console.log(self.searchInput());
        return true;
    }
};

Fiddle

此外,我会说将keypress事件更改为keyup,因为它可以提供更准确的结果(至少在我的小提琴中)。

<input data-bind="textInput: searchInput, event: { 'keyup': filterList }" type="text" placeholder="Search..">