Ciao.
Ho qualche problemino con questa funzioncina, vi spiego cosa devo fare: ho un form (pcf) con 6 righe composte da due select ed un radio (cat_* , disc_*, tsconto_*).
Fate conto di avere cat_1, cat_2 .. disc_1, disc_2 .. ecc.. (l'html è generato da php).
Visto che "comanda" cat_* vorrei farsì che con un onChange il disc_* ed il tsconto_* relativi vengano disabilitati se cat_* == 0
Utilizzando questo semplicissimo codice riesco a fare le cose a metà:
codice:
function selectDisable(i){
if (document.pcf.cat_i .value=='0'){
document.pcf.disc_i.disabled=true;
document.pcf.disc_i.value='0';
document.pcf.tsconto_i.disabled=true;
alert("In questo caso ho disabilitato i due campi incriminati.")
}else{
document.pcf.disc_i.disabled=false;
document.pcf.tsconto_i.disabled=false;
alert("In questo caso sono tutti abilitati.")
}
}
Ho colorato "i" perchè si tratta del problema successivo. 
Immaginiamo di avere su cat_5 l'onChange .. i sarà = 5 .. cosa succede?? Se imposto cat_5 = 0 viene disabilitato disc_5 ma non tsconto_5 e poi esce l'alert.
Come mai il campo radio non viene preso in considerazione? (Il nome è corretto)
Parlavo della "i". Non riesco a passare questo valore nel modo corretto: mettiamo il caso richiami selectDisable(5) .. non risco a scrivere 5 al posto della "i" nelle if, ho già provato con +[i]+, [i], (i) .. ed altre cose ancora peggiori, ma niente. 
In base a come lo scrivo una volta mi dice che "document.pcf.disc_" non è previsto o non è un oggetto, una volta restituisce errore di sintassi..
Ultimo problema: questa funzione mi serve all'onChange però al caricamento della pagina devo anche controllare se ci sono campi cat_* == 0. Ho pensato ad una funzioncina simile a quella sopra ma con un ciclo for da richiamare con onLoad.
Peccato che usando dei template con php non ho possibilità di inserirlo nel <body> della pagina. Posso usarlo in qualche altro modo? O è meglio far eun controllo con php e aggiungere un DISABLED (se necessario) nella creazione dell'html?
Grazie.