Autor | Zpráva | ||
---|---|---|---|
twisterss Profil |
#1 · Zasláno: 6. 3. 2012, 10:53:28
Ahoj prosím o radu. Snažím se zkonstruvat formulář ve kterém mám asi 50 checkboxů a u každého několik inputů (text) a rád bych vytvořil podmínku, že při zaškrtnutí libovolného checkboxu se mi konkrétní inputy zablokují (disable). Prosím o pomoc, nevím jak to vytvořit šikovně abych nemusel vypisovat 50 řádků s každým checkboxem. Rád bych použil knihovnu JQuery.
Děkuji za pomoc. |
||
_es Profil |
#2 · Zasláno: 6. 3. 2012, 11:19:13
twisterss:
„Snažím se zkonstruvat formulář“ No a výsledok tvojej snahy je kde? Alebo to je obvyklý dotaz v štýle „Urobte mi...“? |
||
Sir Tom Profil |
#3 · Zasláno: 6. 3. 2012, 12:42:08
twisterss:
Také ahoj, na JQuery se vykašli - udělej to přes čisté JS. Jakmile se zatrhne jeden checkbox, tak se zavolá událost, která (třeba za pomoci cyklu) přidá dotyčným inputům vlastnost disabled. BTW - nebylo by to ale lepší udělat to tak, že po zaškrtnutí 1 checkboxu se zobrazí (přístupní, enable) patřičné inputy? (Lepší je enablovat nežli disablovat.) |
||
twisterss Profil |
#4 · Zasláno: 6. 3. 2012, 19:55:48
Ne neni to dotaz urobte mi, jen sem se nad tim trápil už dost dlouho a nemůžu na to přijít jestli to nějak šikovně jde bez použití cyklu a v javascriptu. Pokuď ne děkuji za radu a zkusím to udělat přes Javascript.
BTW jinak máš pravdu opravdu to budu poté až to doladím enablovat. ;) for($c=$cont; $c<$cont+5; $c++){ echo"<td><label>Upravit:</label><br /><input id=\"control$c\" type=\"checkbox\" name=\"ctverecek\" ><br/><br/>"; echo"<div class=\"blok$c\"><label id=\"zacatek\">Zač:</label> <input class=\"trida\" type='text' name='zacatek' value='20'/>:<input class=\"trida\" type='text' name='zacatek' value='30'/><br /><br /><label id=\"konec\">Kon:</label><input class=\"trida\" type='text' name='konec' value='21'/>:<input class=\"trida\" type='text' name='konec' value='30'/><br /><br /><label>Místo:</label><select name=\"ovoce\"><option value=\"jb\">Kvapilka</option><option value=\"hs\" selected=\"selected\">G. Táb</option></select></div></td>"; } <script> var a = $("div .blok1").children("input"); var b = $("div .blok1").children("select"); $(function(){ $(':checkbox').change(function(){ if($(':checkbox').is(':checked')) { $(a).attr("disabled", true); $(b).attr("disabled", true); }else{ $(a).attr("disabled", false); $(b).attr("disabled", false); } }); }) </script> |
||
Časová prodleva: 3 dny
|
|||
hexcross Profil |
#5 · Zasláno: 9. 3. 2012, 13:22:29
Myslím že toto je co chceš, při kliknutí na checkbox to vybere tomu přiřazenej element a v něm vybere inputy :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> </head> <body> <?php for($i;$i<5;$i++){ ?> <label for="control-input">Aktivovat</label><input class="control-input" id="control-input" type="checkbox" value="<?php print($i);?>"/> <br /> <div class="wrapper-input wrapper-number-<?php print($i);?>"> <label>Pole 1</label><input class="input-text" type="text" value="Superhustýtext" disabled="disabled" /><br /> <label>Pole 2</label><input class="input-text" type="text" value="Superhustýtext" disabled="disabled" /><br /><br /> </div> <?php } ?> <script type="text/javascript"> $(document).ready(function() { $(".wrapper-input .input-text").attr("disabled",true); // všechny nastavíme na disabled $(".control-input").attr("checked",false); // všechny nastavíme na nezaškrtnuté // při kliku $(".control-input").click(function() { var value = $(this).val(); if ($(".wrapper-number-"+ value +" .input-text").attr("disabled") == "disabled") { $(".wrapper-number-"+ value +" .input-text").removeAttr("disabled"); } else{ $(".wrapper-number-"+ value +" .input-text").attr("disabled",true); } }); }); </script> </body> </html> |
||
Časová prodleva: 11 dní
|
|||
twisterss Profil |
#6 · Zasláno: 20. 3. 2012, 09:50:34
hexcross:
Díky moc, to je přesně ono, nevěděl sem si rady jak to provést pro víc inputů takhle šikovně. Fakt super dík ;) |
||
Časová prodleva: 12 let
|
0