Cześć,
Mam taki formularz:
<DIV id=srodek>
<form method="post" name="takietam">
<div id="ST">
<table border="0" align="center" cellpadding="4" cellspacing="4">
<tr>
<td><input type="checkbox" name="ST_A" value="ON" onclick="st_radio();" > dostęp do A</td>
<td><input type="radio" name="ST_A_R" value="o" disabled> opcja o</td>
<td><input type="radio" name="ST_A_R" value="k" disabled> opcja k</td>
</tr>
<tr>
<td><input type="checkbox" name="ST_B" value="ON" onclick="st_rad('B')" > dostęp do B</td>
<td><input type="radio" name="ST_B_R" value="o" disabled> opcja o</td>
<td><input type="radio" name="ST_B_R" value="k" disabled> opcja k</td>
</tr>
<tr>
<td><input type="checkbox" name="ST_C" value="ON"> dostęp do C</td>
<td><input type="radio" name="ST_C_R" value="o" disabled> opcja o</td>
<td><input type="radio" name="ST_C_R" value="k" disabled> opcja k</td>
</tr>
<tr>
<td><input type="checkbox" name="ST_D" value="ON"> dostęp do D</td>
<td><input type="radio" name="ST_D_R" value="o" disabled> opcja o</td>
<td><input type="radio" name="ST_D_R" value="k" disabled> opcja k</td>
</tr>
</table>
</div>
</form>
</DIV>
W którym chcę, aby aktywność dwóch opcji radio zależała od checkboxa, który je poprzedza.
Udało mi się to zrobić "na sztywno" (część A) za pomocą funkcji st_radio(), ale nie chciałbym tworzyć kolejnych niemal takich samych funkcji tylko chciałabym wywoływać taka funkcję z parametrem. Tyle tylko że coś robię źle (czyżby typ zmiennych?) i funkcja st_rad(zmienna) nie działa jakbym sobie tego życzyła.
function st_radio()
{
var checkbox = document.forms[0].ST_A;
var sta = document.forms[0].ST_A_R;
if(checkbox.checked) {
for (var i = 0; i < sta.length; i++) {
sta[i].disabled = false; }
}
else {
for (var i = 0; i < sta.length; i++) {
sta[i].disabled = true;
sta[i].checked = false; };
}
}
function st_rad(zmienna)
{
var p = 'ST_'+zmienna;
var radi = 'ST_'+zmienna+'_R';
alert (zmienna);
alert (p);
alert (radi);
/*var checkboxr = document.getElementById(p);
alert (checkboxr); */
var checkboxr = document.forms[0].p;
alert (checkboxr);
var STc = document.forms[0].radi;
alert (STc);
if(checkboxr.checked) {
for (var i = 0; i < STc.length; i++) {
STc[i].disabled = false; }
}
else {
for (var i = 0; i < STc.length; i++) {
STc[i].disabled = true;
STc[i].checked = false; };
}
}
Pierwsze trzy alerty wyświetlają właściwy ciąg znaków, natowmiast alert (checkboxr) i alert (STc) wyśiwetlają "undefined".
Zaznaczam że te alerty nie są mi do niczego potrzebne oprócz sprawdzania działania funkcji ;)
Bardzo proszę o pomoc :)