Webly: Ativando options disabled no IE - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de javascript/ECMAScript/AJAX.

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.
Página 1 de 1

Ativando options disabled no IE atributo disabled pra options no IE Avaliar tópico: ***** 2 Votos

#1 Membro offline   Micox Ícone

  • Comunidade de desenvolvedores
  • Ícone
Grupo:
Administradores
Posts:
5251
Cadastrado:
03-julho 06
Location:
Goiânia-GO
Interests:
Webly e elmicox.blogspot.com

Postou 16 maio 2007 - 04:50


Bora lá sem muito papo:

Se você colocar um atributo "disabled" em um option ele deverá ficar desabilitado, ou seja, indisponível. Exemplo:
<select>
	<option>opt 1</option>
	<option disabled='disabled'>opt 2</option>
	<option>opt 3</option>
</select>

Isto acontece bem nos navegadores padrão.
No nosso velho amigo IE não acontece. Teste e veja.

Inspirado pela dúvida do nosso amigo Rafael, fui atrás do problema e não achei solução a não ser fazer uma função pra fazer o serviço completo.
Está abaixo:
<!--[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]-->


Pronto.

//Obs. Esta função substitui algum outro evento onchange que tenha sido colocado antes pra algum option.
Ajude, responda: mesmo que não saiba exatamente a resposta, seu pitaco pode dar uma luz no problema do outro.
Não respondo dúvidas por MP / Email / MSN e afins. O fórum está aqui pra isto.

elmicox.blogspot.com
0

#2 Membro offline   Bermonruf Ícone

  • Bernardo Rufino
  • Ícone
Grupo:
Moderadores
Posts:
762
Cadastrado:
04-outubro 06
Location:
Rio de Janeiro, RJ
Interests:
Ruby On Rails, PHP, Javascript, Ajax, CSS, XHTML, DOM, XML

Postou 16 maio 2007 - 04:52

Hehehe, rapidão cara ehhehe. Parabéns muito bom :clap:
Blog: http://bermonruf.wordpress.com
0

Página 1 de 1


Resposta rápida

  • Diminuir tamanho
  • Aumentar tamanho
  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)