新方法
代替:
data-bind="value: myValue, valueUpdate: ['input', 'textchange']"
现在可以使用textInput 绑定:
data-bind="textInput: myValue"
从文档中:
textInput
绑定将文本框 ( )<input>
或文本区域 ( <textarea>
) 与 viewmodel 属性链接起来,在 viewmodel 属性和元素值之间提供双向更新。与value
绑定不同,textInput
它为所有类型的用户输入提供来自 DOM 的即时更新,包括自动完成、拖放和剪贴板事件。
老路
valueUpdate: ['afterkeydown','propertychange','input']
RightMouseClick如果您想支持→Delete或RightMouseClick→ ,则在 IE9 中不起作用Cut。
我想出的解决方案涉及使用 jQuery 和一个名为jQuery Splendid Textchange的 jQuery 插件。在你加载了 jQuery 和插件脚本之后,你就可以愉快地使用 'textchange' 事件了。
valueUpdate: 'textchange'
但是,有一天我可能会停止支持坏浏览器,所以我有这个:
valueUpdate: ['input', 'textchange']
这是我为测试此事件和其他事件而制作的小提琴:http: //jsfiddle.net/kaleb/w3ErR/
注意如果您使用的是 requirejs,jquery 可能必须是敲除的硬依赖才能使其始终正常工作。