我在一个网站上工作,该网站在用户在输入文本框中输入了一些文本后自动在表格中填充搜索结果(类似于谷歌即时搜索)。

当用户通过添加以下内容输入信息时,我设法获得了 knockout JS以更新 View 模型
valueUpdate: 'afterkeydown'
但是,我还需要处理用户右键单击并将一些文本粘贴到文本框中的情况,因此我尝试了以下操作:
valueUpdate: ['afterkeydown','mouseup']
但这不起作用,当我尝试通过 View 模型读取文本框的值时,一直保持旧值,直到我从输入文本框中跳出为止。

有人知道我该如何解决吗?

奥斯卡奖

最佳答案

您可以使用valueUpdate:'input'。我已经证明它可以在Opera,Firefox和Chrome中使用。我在Linux机器上,因此无法在IE中对其进行测试。 Check this fiddle

更新:我现在已经在IE8中对其进行了测试,但是它不起作用。但是使用以下方法似乎可行。

valueUpdate:['afterkeydown','propertychange','input']

感谢Michael Best对这个问题的评论:)我更新了the fiddle

更新okt 2014:正如kzh在下面的评论中提到的那样,在Knockout.js的更高版本中,添加了textInput绑定(bind)。该绑定(bind)处理这种情况,并内置了浏览器怪癖处理
http://knockoutjs.com/documentation/textinput-binding.html

09-11 20:21