megoldva: input text közötti lépegetés nyilakkal. javascript.

Sziasztok!

input type="text" mezők vannak sorban és oszlopban, adat van benne. Ezek között szeretnék én ugrálni nyilakkal mintha amikor a tab, shift+tab ot használám. Tab használatakor átugrik a következő input beviteli mezőre és kijelöli a benne lévő szöveget. Ez kellene nekem. A .focus() utána .select() csak a le fel nyilaknál működik, ha balra nyilat használok akkor nem jelölődik ki a szöveg, és a culsor is az utolsó karakter előtt villog. Itt gondolom megtörténik a kijelölés csak rögtön utána lépteti a culsort és elveszti a kijelölést. firefox 3.6.x et használok.

van valakinek rá ötlete?

üdv.
greyow

Hozzászólások

Ha ugye az egyes mezőknek adsz egy számos ID-t, akkor a nyilak esetében a fel és le valamint a jobb és bal a "text-mátrix" egy-egy elemét adja meg a megfelelő kivonás és hozzáadás után. Legyen mondjuk így:


text11  text12   text13   text14
text21  text22   text23   text24
text31  text32   text33   text34

Ebben az esetben a fel az aktuális-10, a le az aktuális+10, jobbra és balra + illetve -1 az aktuális számértékből. Ezen felül persze le kell még kezelned, ha a max_row és max_col értékeket eléred, akkor az elejére ugorjon, és ugyanez a min_{row,col} esetében.

Nagyjából ilyen egyszerű. Írtam már valamikor egy ilyen táblázatkezelőt js-ben, de most nem találom. De én így csináltam.

Azt azér vágod, hogy ez ugyanazt csinálja, mint amit mondtam, csak egyszerűbben és nem használ ID-t, hanem a DOM indexet? Továbbá, ha nem 3 oszlopod van, akkor írhatod át, hogy +-4, +-5, vagy ahány oszlopod van. Dinamikusan változó oszlop és sor számmal az ID használata sokkal célravezetőbb.

Vágom, vágom csak nem tudom hova beilleszteni, csakhogy stílusosak legyünk.

Amit mondtál az nem kell nekem. Ha elolvasod a témaindító írásomat benne van, hogy nem a focussal van bajom, hanem az utána lévő szövegkijelöléssel. Ezt most a prototype framework megoldja, ha lesz több időm majd megnézem és átírom framework nélkülire.

Írhattam volna 2 input mezőt is bedrótozva. Ha fel-le nyilakat használom megy, ha jobbra-balra nyilakat akkor nem marad meg a szövegkijelölés.