我对knockout.js来说基本上是新手。我希望获得焦点输入的值。焦点输出事件将触发一个函数,该函数将更改我的可观察数组变量上的某些项。
以下是代码:
<input placeholder="Enter a caption" type="text" data-bind="event:{focusout: $parent.modifyPhotoCaption(id, $(this).val())}" />
但是,$(this).val()不起作用,也不起作用。我想立即获得当前输入的值。
感谢您的帮助。
更新:
我想我还没有提供很多细节。我之所以想要获得价值的原因是因为有很多输入文本:
<input placeholder="Enter a caption" type="text" data-bind="event:{focusout: $parent.modifyPhotoCaption(id, $(this).val())}" />
<input placeholder="Enter a caption" type="text" data-bind="event:{focusout: $parent.modifyPhotoCaption(id, $(this).val())}" />
<input placeholder="Enter a caption" type="text" data-bind="event:{focusout: $parent.modifyPhotoCaption(id, $(this).val())}" />
我不知道如何通过数组获取值。似乎这样做是最快的
答案 0 :(得分:1)
正如我对您的问题发表评论:使用可观察的属性并订阅它。除了绑定项是可观察数组的一部分之外,在subscribe中的observablearray中做任何需要做的更改。
var VM = function() {
var self = this;
self.foo = ko.observable();
self.foo.subscribe(function() {
// do whatever needed.
console.log(self.foo());
});
};
ko.applyBindings(new VM());