I reviewed several threads and tried many solutions. Honestly, I think I'm losing my mind.
I have ng-repeat with inputs. All that should happen is that when the user presses the enter button, he should switch the focus to the next input, basically simulating the functionality of the tab.
Code (incomplete): HTML:
<body ng-app="ap" ng-controller="con"> <table> <tr> <th>Name</th> <th>Age</th> </tr> <tr ng-repeat='person in persons'> <td> <input type='text' name="personName" ng-model="person.name" /> </td> <td> <input type='number' name="personName" ng-model="person.age" enter-as-tab /> </td> </tr> </table>
JS:
var app = angular.module("ap", []); app.controller("con", function ($scope) { $scope.persons = [ { name: 'Susan', age: 1 }, { name: 'Peter', age: 1 }, { name: 'Jack', age: 2 } ]; }); app.directive('enterAsTab', function () { return function (scope, element, attrs) { element.bind("keydown keypress", function (event) { if(event.which === 13) { event.preventDefault();
Here is the link to the script: fiddle
source share