Es obvio, en la funcion javascript tienes puesto que quieres que se haga cuando el value sea "Si" o "No", pero no cuando el value se igual a "0". Tampoco entiendo porque pones la comparación en el if de cuando sea igual a true, si el select que te llama a la función tiene los valores a enviar predifinidos en los options. Cuando le envías el parámetro "0", puede que javascript te este interprentando como que "0" es igual a "false".
Prueba a poner tu función aquí.
Código Javascript
:
Ver original<script type="text/javascript">
function habilitar(value){
if(value=="Si"){
document.getElementById("cod_program_est").disabled=false;
document.getElementById("cod_ins").disabled=false;
document.getElementById("cod_anio_aprob").disabled=true;
}else if(value=="No"){
document.getElementById("cod_program_est").disabled=true;
document.getElementById("cod_ins").disabled=true;
document.getElementById("cod_anio_aprob").disabled=false;
}else{
document.getElementById("cod_program_est").disabled=true;
document.getElementById("cod_ins").disabled=true;
document.getElementById("cod_anio_aprob").disabled=true;
}
}
</script>