Non so se può esserti utile ma,
ho cambiato sistema, invece di bloccare la select, quando l'utente seleziona un valore da modificare, metto il value del codice nella select, poi la rendo invisibile, e metto invece la descrizione della select in un secondo campo che rendo visibile

Così l'utente quando sceglie un record da modificare salva il valore della select (che non potendola vedere non può modificare).

Se invece richiama il pulsante inserisci nuovo allora faccio il contrario e cioè rendo visibile la select così che l'utente possa scegliere e rendo invisibile il testo descrittivo perchè non serve.

La visibilità e l'invisibilità le gestisco tramite una classe di un foglio stile perchè oltre all'invisibilità devo anche dare una misura minima in modo che quello che non appare lasci lo spazio all'oggetto che si visualizza ( per il quale utilizzo una classe di un foglio stile che rende visibile e che occupa lo spazio al 98%)

riga della pagina che genera la funzione script

<tr Id=rec class="msk_val_cmp_center"
idstorico="<%=rs("id_storico")%>" coeff_parziale="<%=rs("coeff_parziale")%>"
dt_inizio="<%=rs("dt_inizio")%>" dt_fine="<%=rs("dt_fine")%>"
cod_insieme="<%=rs("cod_insieme")%>" insieme="<%=rs("descrizione")%>"
onclick="carica(this,'no');dis_abilita('s');"
style="cursor:hand" BGCOLOR="<%=swcolor%>" ><td width=10% ><%=rs("cod_insieme")%> </td> <td width=45% ><%=rs("descrizione") %> </td>
<td width=15% ><%=rs("coeff_parziale") %> </td>
<td width=15% ><%=rs("dt_inizio") %> </td>
<td width=15% ><%=rs("dt_fine") %> </td>
</tr>




' campi della form interessati
<input type="text" name=insieme2 readonly >
<SELECT id="Insieme funzioni" name=parcod_insieme
CLASS=msk_val_cmp_center>
<%
set rs = rs_return(application("db_src_viaggi"), "S_coefficenti_parziali",_
"s",1,"c","@ope", null,null)
if not rs.eof then
do while not rs.eof
Response.Write "<option value='"&rs("cod_insieme")&"'>"& rs("descrizione")&"</option>"
rs.movenext
loop
end if
%>
</SELECT></td>

' fine campi della form interessati


function carica(objrecord,nuovo)
{
boxmodifica.className="mostra";
if (nuovo=="si")
{
annulla(frm_coefficenti);
document.all.item("parid_storico").value ="" ;
frm_coefficenti.parcod_insieme.className='mostra';
frm_coefficenti.parcod_insieme.className ="msk_val_cmp_center";
frm_coefficenti.insieme2.value='';
frm_coefficenti.insieme2.className='piccolo_invisi bile';
return;
}
document.all.item("parid_storico").value =objrecord.idstorico ;
document.all.item("parcod_insieme").value=objrecor d.cod_insieme;
frm_coefficenti.parcod_insieme.className='piccolo_ invisibile';
frm_coefficenti.insieme2.value =objrecord.insieme;
frm_coefficenti.insieme2.className ="msk_val_cmp_center";
document.all.item("parcoeff_parziale").value=objre cord.coeff_parziale;
document.all.item("pardt_inizio").value = objrecord.dt_inizio;
document.all.item("pardt_fine").value = objrecord.dt_fine;
}
</script>

classe I
.piccolo_invisibile
{
VISIBILITY: hidden;
WIDTH: 0px;
TEXT-ALIGN: right
}
// classe II
.mostra
{
VISIBILITY: visible
}
// classe III
.msk_val_cmp_center
{
FONT-SIZE: 12px;
WIDTH: 98%;
FONT-FAMILY: tahoma;
TEXT-ALIGN: center
}


chissà se ti sono stato d'aiuto?
va bè comunque ciao.