mat*_*lin 12 javascript knockout.js
需要一些关于knockoutjs和绑定按键事件的帮助.我正试图连接淘汰赛,以便我从文本框中选择回车键.所以我可以执行与单击按钮相同的操作.解释起来有点棘手但希望这个JsFiddle会展示我想要实现的目标.
我遇到的问题是可观察的值没有得到更新,我认为它与一个observable没有更新直到焦点离开文本框?
解决这个问题的任何方法.
谢谢!
RP *_*yer 38
一种选择是使用valueUpdate附加绑定强制更新每个按键.例如,你会这样做:
<input type="text" data-bind="value: InputValue, valueUpdate: 'afterkeydown', event: { keypress: RunSomethingKey }" />
Run Code Online (Sandbox Code Playgroud)
如果那不是您所追求的,那么您真的想要在处理程序中触发元素的更改事件.例如,使用jQuery,您可以执行以下操作:$(event.target).change();.
将它移动到自定义绑定会更好.也许是这样的(可能应该检查valueAccessor()的结果是否是函数):
ko.bindingHandlers.enterKey = {
init: function(element, valueAccessor, allBindings, vm) {
ko.utils.registerEventHandler(element, "keyup", function(event) {
if (event.keyCode === 13) {
ko.utils.triggerEvent(element, "change");
valueAccessor().call(vm, vm); //set "this" to the data and also pass it as first arg, in case function has "this" bound
}
return true;
});
}
};
Run Code Online (Sandbox Code Playgroud)
以下是您更新的示例:http://jsfiddle.net/rniemeyer/nbnML/9/
| 归档时间: |
|
| 查看次数: |
16441 次 |
| 最近记录: |