Autor Zpráva
orava
Profil
mam asi dvadsat checkboxov na mape
a iba styri su povolenene ostatne su disabled
chcel som spravit funkciu ze ked kliknem na ten povoleny chcekbox tak sa povolia aj styri okolo neho

<script>
function cekni(x,y){
document.getElementById(x+1,y).disabled=false;
document.getElementById(x-1,,y).disabled=false;
document.getElementById(x,y+1).disabled=false;
document.getElementById(x,y-1).disabled=false;
}
</script> 


HTML

<input type="checkbox" name="prvni" value="ano" id="21,20" onClick="cekni(21,20);" >
<input type="checkbox" name="prvni" value="ano" id="21,19" onClick="cekni(21,19);" disabled >

Ale ked kliknem tak sa nic nestane
Neporadite?
Nox
Profil
Oprav to ve stylu:

document.getElementById(x+","+(y+1)).disabled=false;

pokud to nepůjde, zkus k proměnným, hlavně závorkám dát ještě .toString();

Navíc u 2. checkboxu máš navíc čárku
orava
Profil
Prvy sposob nefunguje - nic sa nedeje
druhy som nepochopil, mohol by si uviest priklad?
orava
Profil
nefunguje ani toto
<input type="checkbox" name="prvni" value="ano" id="18,17"  
onClick="document.getElementById(17,17).disabled=false;
document.getElementById(18,18).disabled=false;
document.getElementById(18,16).disabled=false;
document.getElementById(19,17).disabled=false;" >
Nox
Profil
Hlavně pochop, že zadávaný id je řetězec, musí být v uvozovkách

tohle by mělo fungovat...nebo je krpa ještě někde mimo...byl by odkaz?
<script>
function cekni(x,y){
document.getElementById((x+1)+","+y).disabled=false;
document.getElementById((x-1)+","+y).disabled=false;
document.getElementById(x+","+(y+1)).disabled=false;
document.getElementById(x+","+(y-1)).disabled=false;
}
</script> 
orava
Profil
http://www.4orava.php5.cz/login.php?screen=dobyvat
LOGIN : test
HESLO: 147

to posledne co si tu napisal som skusal a nejde to
orava
Profil
ok funguje to
vdaka

a nevies ako spravim ze ked odklikne tak sa zase disabled bude?
Nox
Profil
třeba:
(snad to bude fungovat)
onclick="cekni(21,20,this.checked)"

function cekni(x,y,checked){
if(checked){ zmena=false; } else{ zmena=true; }
...).disabled=zmena;
}
orava
Profil
skusil som toto ale nic sa nedeje uz nejde ani to co islo pred tim
function cekni(x,y){
if((document.getElementById(x+","+y).checked){
document.getElementById((x+1)+","+y).disabled=true;
document.getElementById((x-1)+","+y).disabled=true;
document.getElementById(x+","+(y+1)).disabled=true;
document.getElementById(x+","+(y-1)).disabled=true;
} else {
document.getElementById((x+1)+","+y).disabled=false;
document.getElementById((x-1)+","+y).disabled=false;
document.getElementById(x+","+(y+1)).disabled=false;
document.getElementById(x+","+(y-1)).disabled=false;
}
}
Nox
Profil
na 2. řádku máš o závorku navíc

stáhni si FF plugin Firebug, ten pomůže vychytat takový věci
orava
Profil
Zatial mam toto ale nefunguje to podla mojich predstav

document.getElementById((x+1)+","+y).disabled=false;
document.getElementById((x-1)+","+y).disabled=false;
document.getElementById(x+","+(y+1)).disabled=false;
document.getElementById(x+","+(y-1)).disabled=false;
document.getElementById(x+","+y).disabled=!(document.getElementById(x+ ","+y).checked)
document.getElementById((x+1)+","+y).disabled=!(document.getElementByI d((x+1)+","+y).checked)
document.getElementById((x-1)+","+y).disabled=!(document.getElementByI d((x-1)+","+y).checked)
document.getElementById(x+","+(y+1)).disabled=!(document.getElementByI d(x+","+(y+1)).checked)
document.getElementById(x+","+(y-1)).disabled=!(document.getElementByI d(x+","+(y-1)).checked)
Nox
Profil
a to co sem psal nefunguje?
orava
Profil
konecna a fungujuca verzia
function cekni(x,y){

document.getElementById((x+1)+","+y).disabled=false;
document.getElementById((x-1)+","+y).disabled=false;
document.getElementById(x+","+(y+1)).disabled=false;
document.getElementById(x+","+(y-1)).disabled=false;
if (!document.getElementById(x+","+y).checked){
document.getElementById((x+1)+","+y).disabled=!(document.getElementById((x+1)+","+y).checked)
document.getElementById((x-1)+","+y).disabled=!(document.getElementById((x-1)+","+y).checked)
document.getElementById(x+","+(y+1)).disabled=!(document.getElementById((x-1)+","+y).checked)
document.getElementById(x+","+(y-1)).disabled=!(document.getElementById((x-1)+","+y).checked)
}

}
peta
Profil
orava
V prvni rade, id by melo zacinat pismenem, povolene znaky obvykle byvaji AZaz09_ , u JS i jine, bohuzel.
Dale pak viz nox, ID je retezec.
Cili idealni nazev, treba "i18_21" 18,21 neni ani retezec, ma to tam carku a nezacina ani pismenem. Jeste bys mohl tvrdit, ze v jinem prog. jazyku ti nazev funkce nebo objektu s carkou uvnitr veme.

Co se tyce toho scriptu, mozna bych zkusil funkci nebo cyklus. Ale pro 4 radky to asi nema ceny
function fce(id)
{document.getElementById(id).disabled=!(document.getElementById(id).ch ecked);}
fce((x+1)+","+y);
fce((x-1)+","+y);
fce(x+","+(y+1));
fce(x+","+(y-1));

Pripomina mi to hru 15, takovy pekny script mam z interval.cz
http://www.volny.cz/peter.mlich/hry/shuffle2.htm
http://www.volny.cz/peter.mlich/hry/hry.htm

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