Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 19. 7. 2009, 23:51:36
Prosím poraďte, jak lze přepnout input type="radio" pomocí JavaScriptu.
(Řeším hromadné přepínáníhodnot ve formuláři.) Zkoušel jsem to podobně, jako to funguje u checkboxu: (příklad:) <input type="radio" name="ts" id="ts" value="a"> a<br> <input type="radio" name="ts" id="ts" value="b"> b<br> <b onclick="document.getElementById('ts[0]').checked = '1';">test a</b> <b onclick="document.getElementById('ts[1]').checked = '1';">test b</b> ale u type="radio" se mi to nedaří. Předem díky. |
||
Jan Tvrdík Profil |
#2 · Zasláno: 20. 7. 2009, 00:00:10 · Upravil/a: Jan Tvrdík
nethor:
|
||
Chamurappi Profil |
#3 · Zasláno: 20. 7. 2009, 00:01:10 · Upravil/a: Chamurappi
Reaguji na nethora:
Dej každému <input>u jiné ID. Nemusí být stejné jako name. Mimochodem, vlastnost „checked“ nabývá hodnot true a false, nikoliv "1" (ačkoliv to při nastavování zaškrtnutí funguje). Reaguji na Jana Tvrdíka: To ne. |
||
Str4wberry Profil |
#4 · Zasláno: 20. 7. 2009, 00:15:18
Na uvedený příklad by, myslím, stačil <label>, nethore.
|
||
nethor Profil |
#5 · Zasláno: 20. 7. 2009, 00:21:30
„Chamurappi“
Bezva. To funguje, díky. |
||
Chamurappi Profil |
#6 · Zasláno: 20. 7. 2009, 00:38:50
Reaguji na nethora:
Ale zamysli se i nad tím <label>em, je to dobrý nápad. |
||
nethor Profil |
#7 · Zasláno: 20. 7. 2009, 08:30:12
Label je dobrý nápad, ale v mém případě nelze použít.
Řeším hromadné zaškrtávání 18 / 21 , kde je cca 20řádků. Přiklad jsem zjednodušil, ve skutečnosti vypadá kod nějak takhle: <form action="test.html" method="post"> zatrhni <label for="tst18"> 18</label> <label for="tst21"> 21</label> <br> <input type="radio" name="tst[0]" value="18"> 18 <input type="radio" name="tst[0]" value="21"> 21<br> <input type="radio" name="tst[1]" value="18"> 18 <input type="radio" name="tst[1]" value="21"> 21<br> <input type="radio" name="tst[2]" value="18"> 18 <input type="radio" name="tst[2]" value="21"> 21<br> <!-- atd... --> </form> Jedním LABELem asi nejde ovládat více inputů. A více stejných id použít nelze. <form action="test.html" method="post"> zatrhni <label for="tst18"> 18</label> <label for="tst21"> 21</label> <br> <input type="radio" name="tst[0]" id="tst18" value="18"> 18 <input type="radio" name="tst[0]" id="tst21" value="21"> 21<br> <input type="radio" name="tst[1]" id="tst18" value="18"> 18 <input type="radio" name="tst[1]" id="tst21" value="21"> 21<br> <!-- atd... --> </form> Ale přes ten JavaScript to už funguje přesně, jak potřebuji. Díky za pomoc. |
||
Str4wberry Profil |
#8 · Zasláno: 20. 7. 2009, 10:04:15
„Jedním LABELem asi nejde ovládat více inputů.“
V některých prohlížečích můžeš zanořit více <label>ů do sebe — potom jich ovládají více. Ale, jak jsem řekl, ne ve všech prohlížečích. Ale zauvažoval bych o projití <input>ů cyklem, což se mi zdá, že neděláš. |
||
nethor Profil |
#9 · Zasláno: 20. 7. 2009, 16:32:29 · Upravil/a: nethor
Vyřešil jsem to JavaScriptem.
Funguje to, problém vyřešen. function tlamel(tl,pocet) { for(i=1; i <= pocet ; i++) { document.getElementById("tl_lamel"+tl+"["+i+"]").checked = true; } } |
||
Časová prodleva: 15 let
|
0