Newsgroup: it.comp.lang.javascript
Titolo: problema abilitare e disabilitare una select

Avrei la necessitá di abilitare una select nel momento in cui viene
selezionato un certo bottone di tipo radio e disabilitarla quando se ne
seleziona un altro, ma non riesco a farlo.
Ho provato nel seguente modo:
1) ho creato le 2 seguenti funzioni javascript:
function disabilita_select()
{
    document.form.nome_select.disabled = true;
}
function abilita_select()
{
    document.form.nome_select.disabled = false;
}
2) dato che un radio é impostato di default su un valore (quello
corrispondente al deselezioinamento della select) ho messo la funzione
disabilita_select nel tag body
<body bgcolor="black" text="white" onload="disabilita_select();">
3) richiamo la funzione abilita_select() in un evento onChange nel
radio corrispondente all'attivazione e la funzione disabilit_select()
in un altro evento onChange nell'altro radio.
<input name="scelta" type="radio" value="si"
onChange="abilita_select();"> 1
<input name="scelta" type="radio" value="no"
onChange="disabilita_select();" checked> 2
peró in questo modo non funziona correttamente...come dovrei fare?

 peró in questo modo non funziona correttamente...come dovrei fare?
indicarci l'errore che segnala?
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.

> indicarci l'errore che segnala?
non é un vero e proprio errore é che non fa le cose al momento
giusto. Mi spiego meglio:
1) non disabilita la select nel momento in cui cambio il check sul
radio ma solo quando clicco sulla
select e cerco di modificarne il valore.
2) se faccio il refresh della pagina con le funzioni javascript che ho
usato il radio che dovrebbe essere settato di default non si risetta ma
resta sull'ultimo valore spuntato.

 giusto. Mi spiego meglio:
[CUT]
per iniziare (in mancanza di una pagina completa da testare):
a) document.form.nome_select.disabled = true;
Questa riga qua sopra implica che ci sia una form con name="form", cambialo
b) <body bgcolor="black" text="white" onload="disabilita_select();">
 dovrebbe andare ancora con tutti i browser ma non è assolutamente
standard, nell'head chiamalo con
 <script type="text/javascript"> 
  window.onload=function() {
    disabilita_select();
  }
 </script>
c) <input name="scelta" type="radio" value="si"
onChange="abilita_select();"> 1
 metti onchange (minuscolo)
inoltre a naso onchange non funziona sui radio (non ho tempo di
controllare), valuterei onclick al posto di onchange
Sistema quanto sopra; se il problema persiste posta una pagina intera e ben
ripulita con il problema rilevato.
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.


Ho messo i tuoi suggerimenti e la cosa é un po' migliorata, nel senso
che grazie all'onclick la select si disabilita al momento corretto, e
quindi giá per questo ti ringrazio, peró é rimasto ancora il
problema del refresh della pagina.
La prima volta che apro il file resta la select attiva anche se il
radio é impostato sul campo automatico, per farlo funzionare devo
ricliccarlo.
(tutto questo lo sto facendo andare sotto ie 6)
Ecco il codice ripulito, e grazie ancora per l'interessamento!
<html>
<head>
<script type="text/javascript">
var messaggi_std = new Array();
messaggi_std[0] = "primo";
messaggi_std[1] = "secondo";
messaggi_std[2] = "terzo";
function disabilita_select()
{
    document.riempi.tipoMS.disabled = true;
}
function abilita_select()
{
    document.riempi.tipoMS.disabled = false;
}
function fill()
{
  if(document.riempi.scelta[1].checked)
  {
    document.riempi.scritta.value = "Sono in Automatico";
  }
  else
  {
    if(document.riempi.tipoMS.selectedIndex == 0)
    {
      alert("Selezionare un campo corrispondente ad un messaggio!");
    }
    if(document.riempi.tipoMS.selectedIndex == 1)
    {
      document.riempi.scritta.value = messaggi_std[0];
    }
    if(document.riempi.tipoMS.selectedIndex == 2)
    {
      document.riempi.scritta.value = messaggi_std[1];
    }
    if(document.riempi.tipoMS.selectedIndex == 3)
    {
      document.riempi.scritta.value = messaggi_std[2];
    }
  }
}
window.onload = disabilita_select();
</script>
</head>
<body bgcolor="black" text="white">
<table>
<tr>
<td width="300">
 <table>
  <form name="riempi">
   <tr>
     <td>
       <select name="tipoMS">
       <option>Scegli</option>
       <option>M01</option>
       <option>M02</option>
       <option>M03</option>
       </select>
     </td>
     <td>
       <input name="scelta" type="radio" value="si"
onclick="abilita_select();"> Manuale
     </td>
     <td>
       <input name="scelta" type="radio" value="no"
onclick="disabilita_select();" checked> Automatico
     </td>
</body>
</html>

 window.onload = disabilita_select();
io non ti ho scritto di fare così...hai messo un alert("Ok"); nella
disabilita_select() per vedere se la sta scatenando all'avvio?
p.s. ma se all'apertura deve essere sempre disabilitata perché mai non
setti disabled="disabled" direttamente nella select?
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.