knockout catch enter key press
by sderico
HTML
<script src="http://knockoutjs.com/downloads/knockout-2.2.0.js"></script>
<ul data-bind="foreach: items">
<li>
<input data-bind="value: name, valueUpdate: 'afterkeyup', returnAction: $root.sendMessage" />
</li>
</ul>
JavaScript
ko.bindingHandlers.returnAction = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).keydown(function(e) {
if (e.which === 13) {
value(viewModel);
}
});
}
};
var ChildViewModel = function(name) {
this.name = ko.observable(name);
},
MainViewModel = function() {
var self = this;
self.sendMessage = function(data) {
//put real implementation here
alert(data.name());
};
self.items = ko.observableArray([
new ChildViewModel("one"),
new ChildViewModel("two"),
new ChildViewModel("three")]);
};
ko.applyBindings(new MainViewModel());