| 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: 14 let
|
|||
0