senza complicarti troppo la vita, dal momento che hai un nome che contiene "i" da cui risalire al campo telefono_i, puoi fare cosi'
codice:
SimABordo.onchange = function () { setInput(this); };
...
function setInput(sel){
var
el,
f=document.frm_list,
val=sel.options[sel.selectedIndex].value,
elName='telefono_'+sel.name.substring(sel.name.lastIndexOf('_')+1);
for(var k=0;k<f.elements.length;k++){
if(f.elements[k].name == elName) el=f.elements[k];
}
if(val == "si"){
el.disabled=false;
el.style.background='#fff';
el.style.color='#000';
} else {
el.disabled=true;
el.style.background='#ccc';
el.style.color='#000';
el.value="";
}
}
nota: da quello che sinceramente mi sembra essere un bug di IE al momento non mi viene in mente altro che ciclare, senza dubbio non una soluzione elegante, ma e' la prima che mi e' venuta in mente dal momento che non riesco in altro modo a far riferimento ad elementi creati ed appesi al form (elements['nome'], eval, ... ).
Qualora ci fossero sviluppi prego postare in questa discussione
ciao