我正在尝试使用“标签”按钮检测用户是否离开某个字段 - 如果是,我想保存数据。
在这种情况下,当通过选项卡退出最后一个字段时,会保存两个字段。如果我手动点击“保存”,两个字段都会正确更新。如果我使用TAB,则只保存第一个字段,旧字段不保存新数据。这告诉我,某种程度上“keydown”绑定没有看到新数据。
如果我在本地调试并将鼠标悬停在tabOut方法中的“data”上,我会看到第一个字段有新数据,但第二个字段有旧数据。
小提琴:http://jsfiddle.net/PTSkR/18/
任何帮助将不胜感激!
观点:
<div class="span5 side-study-box">
<textarea data-bind="value: sides()[0].content"></textarea>
</div>
<div class="span5 side-study-box">
<textarea data-bind="value: sides()[1].content, event: { keydown: tabOut }"></textarea>
</div>
tabOut功能:
self.tabOut = function (data, event) {
if (event.keyCode == 9) {
debugger;
self.save();
};
return true;
};
答案 0 :(得分:2)
您是否尝试过将“valueUpdate:'afterkeydown'”绑定添加到文本框中?