Knockout js表编辑列获取onkeyup / Onchange最新值。 [小提琴](https://jsfiddle.net/chiks/975ncawv/521/)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Knockout js表编辑列获取onkeyup / Onchange最新值。 [小提琴](https://jsfiddle.net/chiks/975ncawv/521/)相关的知识,希望对你有一定的参考价值。

我有一个Knockout Model for Table。在表1中,列始终可编辑。我希望获得此列的更改值,即当onchange / onKeyup事件发生时,新更改的值应该随我可用,即在警报中我应该收到最新更改的值。

以下是一个示例代码段。请找Fiddle

<td>
      <input data-bind="event: {change:$parent.value_changed},value: Menge "/>  
  </td>  


 self.value_changed = ko.observable(self.items());
    refVM.value_changed.subscribe(function (newValue) {
   alert(newValue);
});
答案

这比它需要的更复杂。

  1. 默认情况下,Observable会在其值更新时触发更改事件。您无需在html中创建事件绑定即可收听更改。保持这样: <input data-bind="value: Menge "/>
  2. 要监听此Menge observable触发的更改事件,只需在创建它之后立即订阅它(在RowModel构造函数内)。 var RowModel = function(bild,artikelnummer, bezeichnung,kategorie,preis,menge,preisgesamt,removePeople, werbemittelId) { this.Bild = ko.observable(bild); this.Artikelnummer = ko.observable(artikelnummer); ... this.Menge = ko.observable(menge); ... this.Menge.subscribe(function(newValue){ alert(newValue); }); };

这是更新的fiddle

以上是关于Knockout js表编辑列获取onkeyup / Onchange最新值。 [小提琴](https://jsfiddle.net/chiks/975ncawv/521/)的主要内容,如果未能解决你的问题,请参考以下文章

使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具

将选择列表添加到可编辑网格 Knockout.js

Knockout.js - 如何使用“foreach”以两种不同的方式显示项目列表?

使用淘汰赛js过滤表

带有 HTML 到 PDF 转换器的 Knockout JS

Knockout.js 获取 location.href 对象的属性