ugrás a tartalomhoz

onKeyDown megadása utólag

Attus · 2008. Május. 22. (Cs), 09.49
Helló, a problémám a következő. A kollégák szeretnék, hogy egy űrlap weben keresztüli kitöltésekor TAB helyett ENTER lenyomásával is a következő mezőre juthassanak (értelemszerűen ENTER ne küldje el az űrlapot).
Ez eddig nem túl extra dolog, találtam rá JavaScriptes megoldást.
Ez azt igényli, hogy a HTML-kódban az INPUT elem kapjon paramétereket, pl. így:

<input type="text" name="Q1" size="10" onkeydown="return tabOnEnter (this, event);" onFocus="this.select()">
A gond az, hogy egy olyan rendszert használunk, ami a HTML-t nagyrészt automatikusan generálja mindenféle bemeneti adatokból, így az onKeyDown és az onFocus értékét utólag kellene ráapplikálni az INPUT elemre.
Szoktunk máskor hasonlóakat csinálni, a lényege az, hogy a HTML-kód végére kiíratok egy JS-et, ami megadja a szükséges paramétereket. Pl.:

document.getElementById['hihihi'].onChange=függvénynév()
De az onKeyDown és az onFocus értékét nem tudom így megadni, mert kidob mindenféle hibaüzenettel, pl., hogy "event" nincs definiálva, meg ilyenek.
Van erre valakinek valami megoldása, egyáltalán, lehetséges ez?

Köszi!
 
1

jQuery

Joó Ádám · 2008. Május. 22. (Cs), 10.24
Ajánlom a jQueryt használatra, ma már szinte kötelező valamilyen könyvtár a JS írásához, nagyban megkönnyíti a munkád. Itt van, ami neked kell: http://docs.jquery.com/Events/keydown#fn
2

kisbetű-nagybetű

bandi · 2008. Május. 22. (Cs), 10.26
A javascript alapvetően érzékeny a kis- és nagybetűk közötti különbségre, ezért a oda kell figyelned, amikor a DOM-ot használod, mivel van különbség onchange és onChange tulajdonság között. Az összes elem le van írva itt: http://www.w3schools.com/jsref/jsref_events.asp . Javaslom inkább a modernebb megfelelőjük használatát, lásd addEventListener és társai. Sokkal kezelhetőbb lesz a weblapod, ha minden scriptet kipakolsz egy külön fájlba, és a dokumentum betöltésekor aggatod rá az input-okra az eseménykezelőket: http://weblabor.hu/cikkek/diszkretjavascript .

bandi
3

Köszi.

Attus · 2008. Május. 23. (P), 15.11
Köszönöm a válaszokat. Sajnos a mi igen speciális rendszerünkben nem váltak be, de erről nem Ti tehettek.