Nada melhor que a biblioteca jquery junto com seu evento .change() para criar exatamente o que o tÃtulo desse post diz, detectar e manipular eventos dentro de um menu select de forma simples e rápida. Foi com ela que em poucos minutos resolvi minha necessidade de criar alguns select´s combinados. Veja a seguir 2 formas para se conseguir essa funcionalidade.
Utilizada para fazer comparações e tomar decisões para realizar funções em cima de variáveis, funciona como um if. Se o valor for igual, faça isso.
Html
Javascript
$(document).ready(function(){
$("#ford , #bmw").hide()
$("#fabricante").change(
function(){
var fabricante = $("option:selected", this).val();
switch(fabricante){
case 'ford':
$('select:not("#fabricante")').hide();
$("#ford").show();
break;
case 'bmw':
$('select:not("#fabricante")').hide();
$("#bmw").show();
break;
}
});
});
Linha 2: Primeira coisa é deixarmos invisÃveis os combos que aparecerão posteriormente de acordo com a opção selecionada.
Linha 3: Aqui vamos detectar se houve alguma mudança em nosso select.
Linha 4 e 5: Vamos criar uma variável com o nome fabricante e guardar o texto contido no valor do option que foi selecionado.
Linha 6 até 15: Tendo o valor do option selecionado guardado em nossa variável, vamos então verificar se existe algum elemento com o ID igual ao valor da nossa variável. Ele encontrando, seleciona todos os selects do documento, exceto o select de id#fabricantes e esconde. Em seguida deixa visÃvel o select cujo ID seja igual ao valor da variável.
bem simples né? vamos agora fazer um mais otimizado:
Podemos fazer essa funcionalidade ainda mais otimizada e automática. Para isso, basta trocarmos o modo de resgatar e comparar o valor da variável. Em vez de utilizarmos Switch vamos utilizar o construtor pardão do jquery $.
Javascript
$(document).ready(function(){
$("#ford , #bmw").hide()
$("#fabricante").change(
function(){
var fabricante = $("option:selected", this).val();
$('select:not("#fabricante")').hide();
$('#' +fabricante).show();
});
});
Linha 2: Primeira coisa é deixarmos invisÃveis os combos que aparecerão posteriormente de acordo com a opção selecionada.
Linha 3: Aqui vamos detectar se houve alguma mudança em nosso select.
Linha 4 e 5: Vamos criar uma variável com o nome fabricante e guardar o texto contido no valor do option que foi selecionado.
Linha 6: Vamos fazer nosso construtor localizar todos os selects do documento, exceto o que possui o id #fabricantes e vamos esconder.
Linha 7: Aqui é a mágica da otimização, vamos dessa vez apenas passar para o construtor a variável que antes salvou o valor do option selecionado. Ele encontrando algum id igual a esse valor mudará o estado do elemento para visÃvel.
Bom, é isso aà galera. um abraço!
Nenhum comentário ainda.
Feed RSS dos comentários deste post URL de TrackBack
ThiagoFasano - Portfólio versão 2.0