Autor | Zpráva | ||
---|---|---|---|
sh00ter Profil |
#1 · Zasláno: 15. 10. 2009, 22:58:54
Zdravím,
mám takovej problém, mám tabulku a jednotlivý buňky se po klepnutí měněj na inputy. Já potřebuju, aby když budu psát do toho inputu, a zmáčknu ENTER, tak aby input ztratil focus. Dát focus jinému elementu(inputu) není problém, ale já potřebuju, aby ten element(input) byl co nejblíž tomu inputu, aby třeba stránka nescrollovala, ale aby nebyl vidět => dal jsem mu display:none, nebo jsem zkousel i visibility:hidden, ale stejně se focus nepřesunul. Nevíte jak na to? Díky. |
||
tiso Profil |
#2 · Zasláno: 15. 10. 2009, 23:17:34
sh00ter: skús stlačiť TAB miesto ENTER.
|
||
Chamurappi Profil |
#3 · Zasláno: 15. 10. 2009, 23:35:50
Reaguji na sh00tera:
Něčemu, co není ve stránce vůbec vizuálně přítomno, nejde dát focus. Jak by se to mělo chovat, když uživatel začne psát? Můžeš zkusit napozicovat <input> za levý okraj, ale na tvém místě bych si od toho nic nesliboval. Nechtěl bys spíš něco jako tohle? <input onkeydown="if(event.keyCode == 13) { this.blur(); return false }"> |
||
sh00ter Profil |
#4 · Zasláno: 15. 10. 2009, 23:50:21
je to jen k tomu aby se dal pouzit enter k odeslani formulare AJAXem, blur() jsem zkousel a nefungoval, aspon pod chromem
|
||
tiso Profil |
#5 · Zasláno: 16. 10. 2009, 00:05:44
sh00ter: na to stačí formuláru správne nastaviť onsubmit="...", nie?
|
||
_es Profil |
#6 · Zasláno: 16. 10. 2009, 00:38:36
sh00ter
„je to jen k tomu aby se dal pouzit enter k odeslani formulare AJAXem“ A nedá sa formulár odoslať "normálne" - bez AJAXu, aby to fungovalo aj bez JavaScriptu? |
||
sh00ter Profil |
#7 · Zasláno: 16. 10. 2009, 07:01:49
ono to neni primo ve formulari, je to proste samostatnej input kterej se pri onbluru zacne zpracovavat, ja k tomu chci pridat jeste enter
|
||
_es Profil |
#8 · Zasláno: 16. 10. 2009, 09:07:37 · Upravil/a: _es
sh00ter
„... kterej se pri onbluru zacne zpracovavat, ...“ Tak sa potom ten Chamurappiho kód dá upraviť: <input onkeydown="if(event.keyCode == 13) { this.onblur(); return false }"> Alebo namiesto this.onblur(); zavolať funkciu, ktorá to spracovanie vykonáva. |
||
sh00ter Profil |
#9 · Zasláno: 16. 10. 2009, 12:27:21 · Upravil/a: sh00ter
Mám takovej pocit, že vlastnost onblur neexistuje, páč když tam dám na zkoušku alert, tak když je před tím onblurem tak jede, po něm uz ne; když to samý udělám s tím blurem, tak se sice provede v obou případech ale input focus neztratí:(. Našel sem akorát, že blur() platí s objektem window...
pod IE blur() funguje |
||
Joker Profil |
#10 · Zasláno: 16. 10. 2009, 12:47:31
sh00ter:
Existuje onblur, což je událost vyvolaná při opuštění elementu. A pak existuje metoda blur, která by měla opuštění elementu vyvolat. Ale jak se zdá, nefunguje všude. Pokud ale nefunguje metoda blur, není ještě nutné vyrábět umělý prvek, který by převzal fokus... přinejhorším jde fokus přenést na celé okno: window.focus() |
||
sh00ter Profil |
#11 · Zasláno: 16. 10. 2009, 12:52:02
bohuzel se obavam ze to nutny je, protoze window.focus() zase nefunguje v chomu :(
|
||
Chamurappi Profil |
#12 · Zasláno: 16. 10. 2009, 13:26:13
Reaguji na sh00tera:
Pořád asi nerozumím, o co se snažíš. Kód z příspěvku #2 mi funguje ve všech prohlížečích. Zmáčknu Enter, focus zmizí, formulář se neodešle. Co víc by to mělo dělat? „je to proste samostatnej input kterej se pri onbluru zacne zpracovavat“ „Mám takovej pocit, že vlastnost onblur neexistuje“ Zachytáváš tedy událost onblur, nebo ne? „Našel sem akorát, že blur() platí s objektem window...“ „pod IE blur() funguje“ Pokud si prokliknu „blur“ v příspěvku #2, dostanu se na MDC, kde se píše o elementu, nikoliv o window, což naznačuje, že Mozilla tuto metodu zná. Reaguji na Jokera: „Ale jak se zdá, nefunguje všude.“ V čem jsi to zkoušel? |
||
sh00ter Profil |
#13 · Zasláno: 16. 10. 2009, 13:46:14
rikam, pod IE mi funguje this.blur(), ve chromu mi to nefunguje a jinej prohlizec nemam....
|
||
Joker Profil |
#14 · Zasláno: 16. 10. 2009, 14:49:10
Chamurappi:
„V čem jsi to zkoušel?“ Aha, tak je to jinak. V Opeře zdá se nefunguje jen konstrukce onfocus="this.blur()" Když jsem zkusil jinému elementu dát onmouseover="document.getElementById('prvek').blur()", tak už to šlo |
||
Časová prodleva: 15 let
|
0