Ik heb een klein probleem met jQuery. Het gaat om een lijst met <input> fields in een tabel, als een user in een input field iets invult en op enter drukt wordt de data verzonden naar de server, dit werkt allemaal, maar nu wil ik dat na het drukken op enter het volgende <input> field de focus krijgt. Dit werkt niet. De lijst met invoervelden ziet er zo uit:
En de JavaScript code zo:
Mijns inziens moet ik om naar het volgende invoerveld te gaan eerst naar de parent navigeren, daar het volgende element van pakken en dan de eerste child en die de focus geven. Maar dit werkt niet. Ik heb het gedebugd met Firebug, de fout lijkt te zitten in het next() gedeelte. Maar hiervoor weet ik geen alternatief. Wie kan helpen?
HTML:
1
2
3
4
5
6
7
8
9
10
11
| <table> <tr> <td><input type = 'text' id = 'cijfer1' class = 'cijfer' /></td> </tr> <tr> <td><input type = 'text' id = 'cijfer2' class = 'cijfer' /></td> </tr> <tr> <td><input type = 'text' id = 'cijfer3' class = 'cijfer' /></td> </tr> </table> |
En de JavaScript code zo:
JavaScript:
1
2
3
4
5
6
7
8
| $(document).ready(function(){ $(".cijfer").keypress(function(event) { if(event.keyCode == 13) { //Data verzenden hier $(this).parent().next().find(':nth-child(1)').focus(); } }); }); |
Mijns inziens moet ik om naar het volgende invoerveld te gaan eerst naar de parent navigeren, daar het volgende element van pakken en dan de eerste child en die de focus geven. Maar dit werkt niet. Ik heb het gedebugd met Firebug, de fout lijkt te zitten in het next() gedeelte. Maar hiervoor weet ik geen alternatief. Wie kan helpen?