You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Knockout JS获取输入框绑定值并打印用户输入内容?

解决Knockout JS获取输入框值的问题

嘿,刚接触Knockout很容易踩这个小坑~你现在的问题是:self.filter是Knockout的可观察对象(observable),它本质是一个函数,直接打印它只会输出这个函数对象,而不是输入框里的实际值。

正确获取值的方法

要获取observable存储的当前值,你需要调用这个函数(不带任何参数),修改你的filterList方法就行:

var viewModel = function() { 
  var self = this; 
  self.filter = ko.observable(''); 
  self.locationList = ko.observableArray(model); 
  self.filterList = function(){ 
    // 这里要加上()来获取实际输入值
    console.log( self.filter() ); 
  }; 
}

额外优化建议

因为你用了textInput: filter绑定,它已经会实时双向同步输入框内容和filter的值,其实还有更贴合Knockout响应式风格的写法:直接订阅filter的变化,不用依赖keyup事件,这样每次输入值变化时都会自动触发打印:

var viewModel = function() { 
  var self = this; 
  self.filter = ko.observable(''); 
  self.locationList = ko.observableArray(model); 

  // 订阅filter的变化,每次值更新时自动执行
  self.filter.subscribe(function(newInputValue) {
    console.log("用户输入的内容:", newInputValue);
  });
}

这样你甚至可以去掉HTML里的event:{keyup: filterList}绑定,代码会更简洁哦~

内容的提问来源于stack exchange,提问作者meddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:39:26