Autor Zpráva
tomas3333
Profil
caute, mam formular pozostavajuci z checkboxov a podla vybratych poloziek chcem niektore povolovat/zakazovat (disabled)
na JPW som nasiel len co sa tyka radiobuttonov a podobny sposob mi nefungoval. takze, predpokldam javascript, ale... ako...
Trejpa
Profil
tomas3333
<script type="text/javascript">
<!--
function zakazat() {
if (document.formular.zapnout.checked)
document.formular.zakazane.disabled=false
else document.formular.zakazane.disabled=true;};
//-->
</script>
<form action="#" name="formular" onsubmit="return false;">
<input name="zapnout" type="checkbox" onchange="zakazat()">
<input name="zakazane" disabled="disabled">
</form>
tomas3333
Profil
dik, a ak by som chcel pouzit parameter funkcie (lebo moznosti, kde to pouzijem je viac) tak dam zakazat(idprepinac, idciel) - napr. len potom neviem ako to "dat" do dalsieho kodu... tu myslim:

if (document.formular.zapnout.checked)
document.formular.zakazane.disabled=false
else document.formular.zakazane.disabled=true;

dik
tomas3333
Profil
<script type="text/javascript">
<!--
function zakazat(idprepinac, idciel) {
if (document.formular.idprepinac.checked)
document.formular.idciel.disabled=false
else document.formular.idciel.disabled=true;};
//-->
</script>

nefunguje
Trejpa
Profil
tomas3333
Mně to v obměnách také nefunguje. Zkoušel jsem některé další metody a na řešení jsem zatím nepřišel.
tomas3333
Profil
hm, tak to tam asi budem musiet natrepat niekolkokrat... ale dik
peta
Profil
<script type="text/javascript">
<!--
function zakazat() {
if (document.formular.zapnout.checked)
document.formular.zakazane.disabled=false
else document.formular.zakazane.disabled=true;};
//-->
</script>
<form action="#" name="formular" onsubmit="return false;">
<input name="zapnout" type="checkbox" onchange="zakazat()">
<input name="zakazane" disabled="disabled">
</form>


---

tomas3333
idprepinac
co to tu placate, oba? jake id, kdyz ten script nahore pracuje s name?
Co treba uvest cely vas priklad, ktery vam s obmenami nefunguje a ne jen JS script?
Co treba pridat vypis z JS konzoly k tomu prikladu?
Nastroje - chybova konzola
Nastroje - JS konzola
dole zluty vykricnik v IE - rozkliknout podrobnosti





-----
<script type="text/javascript">
function funkceX(Xzdroj,Xcil)
{
document.formular.Xcil.disabled=(xZdroj.checked) ? "disable" : "";
// mozna je to dissable = "dissable", disabled = disabled a obmeny
// a mozna to na checkboxu onclinck nefunguje, v nekterem prohlizeci, ten samozrejme neuvedl ani jeden...
}
</script>

<form action="#" name="formular" onsubmit="return false;">
<input name="a" type="checkbox" onchange="zakazat(this,'z')">
<input name="b" type="checkbox" onchange="zakazat(this,'z')">
<input name="z" type="text" disabled="disabled">
</form>
peta
Profil
a co treba takhle?
http://www.volny.cz/peter.mlich/hry/hry.htm
http://www.volny.cz/peter.mlich/hry/
si kliknete na osm.htm
Trejpa
Profil
peta
co to tu placate, oba? jake id, kdyz ten script nahore pracuje s name?
Nic neplácáme. tomas3333 pod názvem proměnné "idprepinac" rozuměl jednoznačné pojmenování žádaného prvku, v tomto případě pomocí "name", a já jsem tomu porozuměl.

Možná jsi nerozuměl zadání. tomas3333 chtěl checkboxem ovládat disable u text inputu. To ten můj skript umí. Tím, co nám nefunguje, je adresování konkrétního prvku přes parametr funkce. Takhle to bylo zamýšleno (zjednodušeno):

<script>function proved(a) { document.formular.a.value="cokoliv"; }</script>
<a onclick="proved("pole")">něco</a>
<form name="formular"><input name="pole"></form>

Parametr se v pohodě předá, ale nefunguje zařazen v té adrese k prvku. A těmi mými obměnami bylo, že jsem se to pokoušel adresovat jinak. Aneb:
document.formular.pole.value="cokoliv"; --- funguje
document.formular.a.value="cokoliv"; --- nefunguje

EDIT:
Ještě jinak. Skript nepochopí, že tím "a" (viz výše) jsem myslel proměnnou, ale ve stránce hledá takto pojmenovaný prvek (který pochopitelně neexistuje).
Trejpa
Profil
Náhodou jsem na řešení narazil, tak to sem ještě dávám. Adresovat konkrétní formulář a jeho pole lze pomocí složených závorek elementu document.forms[][]. Změnit následující kód na cyklus či podmínky už potom není problém.

<script>
<!--
var f = "formular";
var p = "zakazane";
function zakazat(p) {
if (document.formular.zapnout.checked)
document.forms[f][p].disabled=false
else document.forms[f][p].disabled=true;};
//-->
</script>
<form action="#" name="formular" onsubmit="return false;">
<input name="zapnout" type="checkbox" onchange="zakazat()">
<input name="zakazane" disabled="disabled">
</form>


EDIT: Ještě řešení pro volání funkce s parametrem.

<script>
<!--
var f = "formular";
var p = "zakazane";
var z = "zapnout";
function zakazat(c) {
if (document.forms[f][z+c].checked)
document.forms[f][p+c].disabled=false
else document.forms[f][p+c].disabled=true;};
//-->
</script>
<form action="#" name="formular" onsubmit="return false;">
<input name="zapnout1" type="checkbox" onchange="zakazat(1);">
<input name="zakazane1" disabled="disabled"><br>
<input name="zapnout2" type="checkbox" onchange="zakazat(2);">
<input name="zakazane2" disabled="disabled"><br>
</form>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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