Autor Zpráva
Enko
Profil *
Ahoj,
z php si generuji toto:
<input type="radio" 
       name="hlavni_fotka" 
       id="on1" 
       onclick="if (this.checked)
         document.getElementById('ch1').disabled=true;
       else document.getElementById('ch1').disabled = false;" 
       value="1"  checked>
<input type="checkbox" 
       id="ch1" 
       onclick="if (this.checked)
         document.getElementById('on1').disabled=true; 
       else document.getElementById('on1').disabled = false;" 
       name="smazat[1]" 
       value="1">

<input type="radio" 
       name="hlavni_fotka" 
       id="on2" 
       onclick="if (this.checked)
         document.getElementById('ch2').disabled=true;
       else document.getElementById('ch2').disabled = false;" 
       value="2" >
<input type="checkbox" 
       id="ch2" 
       onclick="if (this.checked)
         document.getElementById('on2').disabled=true; 
       else document.getElementById('on2').disabled = false;" 
       name="smazat[2]" 
       value="1">


A potřebuji aby když kliknu na checkbox s id=ch2 aby byl disablován radio id=on2 a obráceně(a to samé u ostatníchnapř:ch1 a on1, atd..).
Vytvořil jsem kód výše, ale pokud mám pod sebou více řádků(on1, ch1; on2, ch2; on3, ch3) tak pokud klikám na checkboxy, funguje vše dobře ale pokud preklikávám u radio, tak všechny checkboxy zůstávají disablované. Poradí mi někdo co s tím?

Děkuji
bukaJ
Profil
No to bude trochu problém, protože onclick se spustí jen při kliknutí, ale ne už při "odškrtnutí" kliknutím na jinou položku.

Řešením bude v onclick u radiobuttonu projít všechny checkboxy a povolit je a pak až disablovat ten jeden konkrétní.

Nebo si můžeš do proměnné uložit, který checkbox byl naposledy disablován a při klinutí na radio jej enablovat a zase uložit ID nově disablovaného.
Tori
Profil
Enko:
Jednotlivé prvky taky můžete adresovat přes společný formulář:
<input type="radio" 
       name="hlavni_fotka" 
       onclick="this.form['smazat[2]'].disabled = (this.checked);"
       value="2" >
JavaScript tak nemusí procházet všechny prvky uvnitř dokumentu, ale jen těch pár inputů ve formuláři. Přepínače (radio) by se adresovaly
this.form.jmenoPrepinace[0] = disabled;
, kde číslo (index pole) určuje jeho pořadí ve formuláři.
Enko
Profil *
bukaJ:
Měl bys, prosím, třeba nějakou ukázku? V JS téměř nedělám a zbytečně bych ztrácel hodiny času hledáním.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0