我在一个网站上工作,该网站在用户在输入文本框中输入一些文本后自动将搜索结果填充到表格中(类似于谷歌即时搜索)。
当用户通过添加输入信息时,我设法让 knockout js 更新 View 模型
valueUpdate: 'afterkeydown'
但是,在我的数据绑定(bind)属性中,我还需要处理用户右键单击并将一些文本粘贴到文本框中的情况,所以我尝试了:
valueUpdate: ['afterkeydown','mouseup']
但这没有用,当我尝试通过 View 模型读取文本框的值时,我一直在获取旧值,直到我跳出输入文本框。。 p>
有人知道我该如何解决这个问题吗?
奥斯卡
最佳答案
您可以使用 valueUpdate:'input'。我已经测试它可以在 Opera、Firefox 和 Chrome 中使用。我在 Linux 机器上,所以我无法在 IE 中测试它。 Check this fiddle
更新:我现在已经在 IE8 中对其进行了测试,但它不起作用。但使用以下内容似乎有效。
valueUpdate:['afterkeydown','propertychange','input']
感谢 Michael Best 对此的评论 :) 我已经更新了 the fiddle
2014 年 10 月更新:正如 kzh 在下面的评论中提到的,在 Knockout.js 的一个较新版本中添加了 textInput 绑定(bind)。此绑定(bind)处理此场景并内置浏览器怪癖处理 http://knockoutjs.com/documentation/textinput-binding.html
关于javascript - knockout JS : How to update view model after a user copy'n'paste into a text field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109339/