javascript - 无法访问knockoutjs中事件绑定(bind)中的当前项目

标签 javascript html knockout.js

我试图在按键事件绑定(bind)的处理函数中获取输入元素的值

<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 处理函数中获取每次按键时输入字段的值?

最佳答案

由于您将 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,因为它可以提供更准确的结果(至少在我的 fiddle 中)。

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

关于javascript - 无法访问knockoutjs中事件绑定(bind)中的当前项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41157840/

相关文章:

javascript - d3 基于值的文本标签格式

html - CSS - 两个 flex 列

javascript - 如何通过 ID 仅隐藏列表项中的图像?

javascript - 从父 View 模型中 knockout 下拉菜单

javascript - mongodb类型更改为数组

javascript - 在 javascript 上使用 zapier 格式化日期和时间

javascript - jQuery.on();与 JavaScript .addEventListener();

javascript - 显示空格的 ACE 编辑器

javascript - Durandal 的 ko.bindingHandler 问题

javascript - CKEDITOR 小部件拖放到所需元素中