Autor | Zpráva | ||
---|---|---|---|
Ryan Profil * |
Ahojte,
potrebujem poradiť: mám textový INPUT a vedľa neho 2 disabled buttony s hodnotami + a - A teraz potrebujem nasledujúce: - po kliknutí na INPUT (keď má focus) sa pozadie INPUTu nastaví na žlto. Buttony budú sa nastavia ako aktívne. .. [toto je OK] - kliknutím na +/- sa pripočíta / odpočíta z INPUTU hodnota 1 [toto je tiež ok] Problém je, že buttony +/- majú byť aktívne iba ak ma INPUT focus. Ak stratí focus, tak majú byť disabled. Čiže pokiaľ je kurzor vo vnútri INPUTu, tak je všetko OK. Ale keď kliknem na +/-, tak INPUT stratí focus a tým pádom nemá žlté pozadie a buttony su disabled. A práveže potrebujem klikať na +/- ale aby kurzor bol vždy v INPUTe a pozadie bolo žlté. Pozadie a buttony sa zrušia, iba keď kliknem niekde mimo INPUTU. Viete ma prosím naviesť ako to urobiť? Používam jQuery. Ďakujem. |
||
_es Profil |
#2 · Zasláno: 19. 11. 2010, 22:18:02
Ryan:
„Viete ma prosím naviesť ako to urobiť? Používam jQuery.“ Na toto nepotrebuješ jQuery a ani to s jQuery nebude nejako jednoduchšie. Tie "buttony" sú čo zač? Bez "živej" ukážky ti dosť ťažko poradiť. Jedine tak nejak všeobecnejšie: použi udalosti onclick , onfocus , onblur , metódu focus , …
|
||
Ryan Profil * |
#3 · Zasláno: 19. 11. 2010, 22:43:45
Buttony su klasické
<input type="reset" value="+" onclick="incerement();" /> <input type="reset" value="-" onclick="decrement();" /> |
||
Ryan Profil * |
#4 · Zasláno: 19. 11. 2010, 23:06:47
Pridávam zdrojáky. Na event onblur pri INPUTe neviem dosiahnuť, aby sa buttony nastavili na "disabled"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html charset=utf-8"> <title>test</title> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript" src="jquery.js"></script> <style type="text/css"> .inputFocus { background: yellow; } </style> <script type="text/javascript"> function inputFocus(element) { $("#something").addClass('inputFocus'); $(".btn").attr("disabled", false); } function inputBlur() { $("#something").removeClass('inputFocus'); // $(".btn").attr("disabled", true); } function increment() { var value = $('#something').attr('value'); value++; $('#something').attr('value', value); $('#something').focus(); } function decrement() { var value = $('#something').attr('value'); value--; $('#something').attr('value', value); $('#something').focus(); } </script> </head> <body> <input type="text" id="something" name="something" value="0" onfocus="inputFocus();" onblur="inputBlur();" /> <input type="reset" class="btn" value="+" onclick="increment();" disabled="disabled" /> <input type="reset" class="btn" value="-" onclick="decrement();" disabled="disabled" /> </body> </html> |
||
Chamurappi Profil |
#5 · Zasláno: 19. 11. 2010, 23:15:36
Reaguji na Ryana:
„A práveže potrebujem klikať na +/- ale aby kurzor bol vždy v INPUTe a pozadie bolo žlté.“ To dost dobře nejde. Minimálně v době kliknutí na tlačítko musí být kurzor mimo <input> . Na dobu, kdy mají focus ta resetovací tlačítka (proč jsou vůbec resetovací?), musíš pozdržet zrušení toho focusovacího efektu. Takže nějaký setTimeout , clearTimeout …
„$("#something").addClass('inputFocus');“ Proč ho vyhledáváš, když si ho můžeš předat do funkce jako this ?
|
||
_es Profil |
#6 · Zasláno: 20. 11. 2010, 00:37:27
Ryan:
Nedávno sa tu tiež riešilo niečo s tým súvisiace: http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=117675&page=-1#12. |
||
Časová prodleva: 13 let
|
0