我对 Knockout 零经验,但了解 Javascript 和 Jquery,我遇到了一个问题。
<input type="text"
value="Original Value"
data-bind="value: description,
valueUpdate: 'afterkeydown'" />
var viewModel = {
description:ko.observable("")
};
ko.applyBindings(viewModel);
http://jsfiddle.net/243b1z4h/1/
用户在该输入文本框中键入内容,但属性value
仍然具有旧/原始值(使用浏览器检查器工具)并且不会更新它。
如何强制 knockout 始终更新输入值
?
最佳答案
这只是一个“视觉”问题。控制台没有意识到元素的 value
已更改,并继续显示原始 value 属性。
为了证明这一点,您可以执行以下操作:
- 使用 Chrome 的控制台指针(位于左上角,或按 Ctrl+Shift+C)并选择
input
元素 - 在控制台上输入
$0.value
。它将向您显示由ko
更新的值
如果您不知道 $0
是什么,它就是选定的元素。您还可以使用 $0
来做一些有趣的事情,例如显示 ko 绑定(bind) View 模型:ko.toJS(ko.dataFor($0))
顺便说一句,要使其工作,您必须在控制台中选择适当的框架:在控制台的第一个文本框中,选择 result(fiddle.jshell.net/)
框架
关于javascript - DOM如何获取Knockout JS值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998151/