Autor | Zpráva | ||
---|---|---|---|
Monkeys Profil * |
#1 · Zasláno: 19. 4. 2012, 10:43:34
Ako vyriesit tuto cast kodu v ktorej prepinam disabled tlacitko do enabled ale problem vznika ked napr. oznacim 2 checkboxi a potom jeden odznacim (teda jeden ostane oznaceny), ale tlacitko sa mi vrati do disabled neviem kde robim chybu.
(function(){ //disabled / enabled button $("#prepinac, .prepni").click(function() { var checked_status = this.checked; if (checked_status == true) { $("#vymaz").removeAttr("disabled"); } else { $("#vymaz").attr("disabled", "disabled"); } }); }); Dakujem |
||
_es Profil |
Monkeys:
„$("#vymaz").removeAttr("disabled");“ Čo by to malo spraviť? Objektu tlačítka treba nastavovať vlastnosť disabled na true alebo false .
„oznacim 2 checkboxi a potom jeden odznacim (teda jeden ostane oznaceny), ale tlacitko sa mi vrati do disabled neviem kde robim chybu.“ Asi v logike aplikácie. Rozmysli si, čo, kedy, a koľko krát, sa vykoná. |
||
Monkeys Profil * |
#3 · Zasláno: 19. 4. 2012, 11:13:54
_es:
#prepinac - je hlavny checkbox ktorym označim alebo odznacim vsetky ostatne checkboxi. .prepni - to su jednotlive checkboxi „Čo by to malo spraviť?“ Prepina to tlacitko do nepristupneho stavu - Tento riadok funguje takze by to malo byt v poriadku Toto je kod ktorym oznacujem ostatne checkboxi $("#prepinac").click(function () { $('.prepni').attr('checked', this.checked); }); $(".prepni").click(function(){ if($(".prepni").length == $(".prepni:checked").length) { $("#prepinac").attr("checked", true); } else { $("#prepinac").removeAttr("checked"); } }); |
||
_es Profil |
#4 · Zasláno: 19. 4. 2012, 11:24:13
Monkeys:
„if($(".prepni").length == $(".prepni:checked").length)“ O tejto časti kódu mám pochybnosti. Viď aj Doporučuji užívat standardní vlastnosti HTML DOMu místo getAttribute/setAttribute Sprav to nejako normálnejšie cez skutočné vlastnosti checked a disabled a nie cez hentie jQuery zlepšováky.
|
||
Monkeys Profil * |
#5 · Zasláno: 19. 4. 2012, 17:42:08
Mordujem sa stym odrana a neviem stym pohnut.
Dokazem spravit udalost na jeden prepinac ale ako som uz pisal oznacim viacej boxov a po odznaceni jendeho sa tlacito vrati do disabled aj ked su oznacene ostatne boxi. skusil som nieco taketo cez cyklus each ale aj tak to nefunguje. $("#prepinace .toggle").each(function(){ // najdeme vsetky boxy var prep = $(this).attr('checked', false); //boxom dame false nadstavenie (neodskrknute) prep.click(function(){ // po kliknuti na box var prepinac = this.checked; // ak je box oznaceny if(prepinac == true){ // ma hodnotu true (je odskrknuty ) $("#vymaz").removeAttr("disabled"); // tlacitoko daj do enabled }else{ $("#vymaz").attr("disabled", "disabled"); // vratit do disabled } }); }) |
||
_es Profil |
#6 · Zasláno: 19. 4. 2012, 17:58:41
Monkeys:
Prečo do toho, napriek rade, stále montuješ metódy jQuery na prístup k atribútom? Ide o maskované getAttribute/setAttribute . Použi len vlastnosti checked a disabled , nepouži jQuery metódy attr a removeAttr .
|
||
Monkeys Profil * |
#7 · Zasláno: 19. 4. 2012, 19:06:51
_es:
Hmm tak to rovno mozem ostat pri JS a neucit sa kniznicu jQuery. Ked mi radis aby som polovicu z tych veci vypustil. Neviem sa bez toho pohnut ked mam ostat pri jQuery. |
||
Monkeys Profil * |
#8 · Zasláno: 19. 4. 2012, 21:24:53
No dosiel som nato nakoniec :)
Funguje pekne Podelim sa ak by sa stym v buducnosti niekto trapil. $("#prepinace .toggle").click(function(){ var p = $(this).is(':checked'), v = $(this).siblings('.toggle:checked'); //oznacit jednotlivo $('.toggle:checkbox').change(function(){ if(this.checked){ $("#vymaz").removeAttr("disabled"); } }); // zachovat oznacene ak sa jedna o posledny box znepristupnit tlacitko if($(".toggle:checked").length == v.length) { if(p == true){ $("#vymaz").removeAttr("disabled"); }else{ $("#vymaz").attr("disabled", "disabled"); } } }); |
||
_es Profil |
#9 · Zasláno: 20. 4. 2012, 10:26:49
Monkeys:
„Hmm tak to rovno mozem ostat pri JS a neucit sa kniznicu jQuery.“ Časté potíže, zajímavosti a poučné debaty » Co vlastně je jQuery? To, že do stránky natiahneš jQuery, neznamená, že musíš použiť metódy jQuery na daný účel nevhodné - attr a removeAttr . Ešte by bolo dobré ten tvoj kód otestovať vo viacerých prehliadačoch.
|
||
Monkeys Profil * |
#10 · Zasláno: 20. 4. 2012, 10:56:09
_es:
„Ešte by bolo dobré ten tvoj kód otestovať vo viacerých prehliadačoch.“ Testované v IE, Mozila, Opera - bez problemov M. |
||
Časová prodleva: 12 let
|
0