Desabilitando uma Option de um Select no IE

1 resposta
rollei

Como faco para desabilitar uma option de um select no IE?

no firefox e no opera quando eu ponho na tag do option

disabled=“disabled” ou disabled=“true” a opcao nao pode ser selecionada ou quando eu faco isso usando java script como por exemplo

document.getElementById(“idSelect”+i).options[0].disabled = true;

os dois casos dao certo no FireFox e no Opera, mas nao funciona no IE … a opcao continua selecionavel … com faco para funcionar nos 3 browsers?

1 Resposta

jtsato
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Title</title>
<!--[if lte IE 6]>
<script>
function ativaOptionsDisabled(){
    var sels = document.getElementsByTagName('select');
    for(var i=0; i < sels.length; i++){
        sels[i].onchange= function(){ //pra se mudar pro desabilitado
            if(this.options[this.selectedIndex].disabled){
                if(this.options.length<=1){
                    this.selectedIndex = -1;
                }else if(this.selectedIndex < this.options.length - 1){
                    this.selectedIndex++;
                }else{
                    this.selectedIndex--;
                }
            }
        }
        if(sels[i].options[sels[i].selectedIndex].disabled){
            //se o selecionado atual é desabilitado chamo o onchange
            sels[i].onchange();
        }    
        for(var j=0; j < sels[i].options.length; j++){ //colocando o estilo
            if(sels[i].options[j].disabled){
                sels[i].options[j].style.color = '#CCC';
            }
        }
    }
}
window.attachEvent("onload", ativaOptionsDisabled)
</script>
<![endif]-->
</head>
<body>
<form id='formulario' action='' method='post'>
<table width='100%'>
<tr>
  <td><select id="cmbSelecao" name="cmbSelecao">
    <option selected>1</option>
    <option>2</option>
    <option disabled>3</option>
    <option>4</option>
    <option>5</option>
</select>
  </td>
  <td>
  </td>
</tr>
</table>
<br />
</form>
</body>
</html>

Fonte.: http://forum.imasters.uol.com.br/index.php?showtopic=252386

Testei aqui com esse javascript e funcionou.

Criado 10 de abril de 2008
Ultima resposta 10 de abr. de 2008
Respostas 1
Participantes 2