Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Programação em Javascript II / Workshop de Javascript
SEÇÕES
Manuais relacionados
+Programação em Javascript II
+Workshop de Javascript
Categorias
+Javascript
+Manuais de Javascript

Índice do Manual Programação em Javascript II
+ Introdução ao manual II de Javascript
+ Biblioteca de funções Javascript
+ Exemplos das funções da biblioteca Javascript
+ Objetos em Javascript
+ Objetos incorporados em Javascript
+ Classe string em Javascript
+ Exemplos de funcionamento da classe String
+ Classe Date em Javascript
+ Exemplo de funcionamento de Date
+ Classe Math em Javascript
+ Classe Number em Javascript
+ Classe Boolean em Javascript
+ Criação de classes em Javascript
+ Criação de classes em Javascript II
+ Criação de classes em Javascript III
+ Hierarquia de objetos do navegador
+ Trabalhando com a hierarquia em Javascript
+ Objeto Window de Javascript
+ Métodos de window em Javascript
+ Exemplos de métodos de Window
+ Objeto document em Javascript
+ Exemplos de propriedades de document
+ Métodos de document
+ Fluxo de escritura do documento
+ Trabalho com formulários em Javascript
+ Ex. de trabalho com formulários. Calculadora simples
+ Propriedades e métodos do objeto form
+ Controle de campos de texto com Javascript
+ Controle de checkbox em javascript
+ Controle de botões de radio em Javascript
+ Controle de campos select com Javascript
+ Controle de elementos Textarea em Javascript
+ Os eventos em Javascript
+ Os manipuladores de eventos em Javascript
+ Exemplos de eventos em Javascript. Onabort
+ Exemplo do evento onblur em Javascript
+ Continuação do exemplo de onblur
+ Elementos de formulário select associados
+ Evento onunload de Javascript
+ Evento onload de Javascript

Descrição dos capítulos

Índice do Manual Workshop de Javascript
+ Efeitos rápidos com Javascript
+ Abertura e configuração de popups com Javascript
+ Acessso por senha Javascript
+ Rollover com Javascript
+ Navegador dinâmico Javascript
+ Navegador desdobrável
+ Navegador desdobrável com frames
+ Texto em movimento na barra de estado
+ Marcar ou desmarcar todos os checkboxes de um formulário com Javascript
+ Desabilitar o menu contextual do navegador com Javascript
+ Relógio em Javascript
+ Scripts diferentes para cada navegador
+ Tamanho dos campos relativo ao navegador
+ Estilos diferentes para cada navegador
+ Tabela de cores com Javascript
+ Sub-menu em outra janela
+ Degradê de cor Javascript
+ Validar inteiro no campo de formulário
+ Exemplos de funcionamento da classe String
+ Exemplo de funcionamento de Date
+ Link aleatório Javascript
+ Geração de números aleatórios Javascript
+ Comprovar se as senhas são iguais
+ Ex. de trabalho com formulários. Calculadora simples
+ Enviar ao navegador a outra página se não tiver Javascript
+ Confirmação de envio de formulário
+ Javascript para se posicionar em um select
+ Inibir um campo texto de formulário com Javascript
+ Camadas com Internet Explorer 5, 6, Netscape 6, 7 e Opera
+ Mostrar e ocultar camadas com IE 5,6 NS 6,7
+ Movimento de Camadas com IE 5,6 NS 6,7
+ Escritura nas Camadas com IE 5, 6, NS 6, 7
+ Como iluminar tabelas, células ou filas
+ Inibir radio button com Javascript
+ Atualizar dois frames com um só link
+ Calcular a idade em Javascript
+ Iluminar formulários com CSS e Javascript
+ Autozoom de texto com Javascript
+ Javascript para evitar que a página se mostre em um frame
+ Elementos de formulário select associados
+ Conta os caracteres escritos em um textarea
+ Passo de parâmetros em HTML com client-side Javascript
+ Moldura dinâmica em Javascript com texto que muda
+ Criação de gráficos de barras com Javascript
+ Jogos em Javascript
+ Cross-Browser. DHTML compatível com todos os navegadores.
+ HTML Area. Editor WYSIWYG
+ Ocultar um e-mail de um link para evitar o spam
+ Função em Javascript para a inserção de datas
+ DHTML Calendar
+ Gerar uma cor aleatória com Javascript
+ A aprendizagem na Internet
+ Menu Dinâmico com Javascript
+ Página que muda aleatoriamente a cor de fundo
+ Script de recarregamento da página com Javascript
+ Mudar a cor às células de uma tabela com Javascript
+ Pop-ups DHTML – OpenPopups
+ Validar a extensão de um arquivo a subir com Javascript
+ Detectar a resolução da tela do usuário com Javascript
+ Esconder a URL de um link na barra de estado
+ Como integrar conteúdo RSS em minha página?
+ Fazer com que um iframe se ajuste à altura de uma janela com Javascript
+ É vantajoso o uso de ParseInt para validar números?
+ Efeito para desabilitar/habilitar o fundo da Página
+ Validar número de checkbox marcados com Javascript
+ Evitar que um textarea supere um número de caracteres permitidos
+ Javascript não intrusivo
+ Controle de introdução de caracteres de um campo de texto com Javascript
+ Listagem de diferentes Framework Javascript
+ Script para detecção de suporte a Ajax, Cookies e ActiveX
+ Leitor RSS com Javascript
+ Funções para validação alfanumérica de strings em Javascript
+ Script para informar da segurança de uma senha, com Javascript

Descrição dos capítulos


Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net
- CodigoFonte.net


Elementos de formulário select associados

Como fazer com Javascript que um elemento de formulário select mude suas opções quando mude outro elemento select da página. De modo que cada opção de um select tenha um grupo de opções possíveis para o outro select.


Vamos conhecer um dos truques mais solicitados de Javascript, que tem muita relação com o tema de formulários e onde se utiliza o evento onchange de Javascript. É um exemplo sobre como realizar uma página com dois selects onde, segundo o valor escolhido em um deles, mudem as opções possíveis do outro select.

O melhor para ver o que vamos fazer é ver uma página web onde se mostra em funcionamento o script. Para ver seu funcionamento, devemos mudar a seleção do primeiro select e comprovaremos como as opções do segundo select mudam automaticamente.

O exemplo que ilustramos utiliza estados e países. Ao escolher no primeiro select um país, no segundo deve nos mostrar os estados desse país para que possamos escolher um estado, mas somente um que esteja no país selecionado no primeiro término.

Conhecer o objeto select e os option

É importante conhecer os objetos de formulário select e os option. Os select correspondem com as caixas de seleção desdobráveis e os option com cada uma das opções da caixa desdobrável. Podemos ver um artigo que fala sobre isso.

Teoricamente nos interessa fazer várias coisas que têm a ver com extrair o valor de um select em qualquer momento, observar seu número de opções e, para cada opção, colocar seu valor e seu texto associado. Tudo isto aprenderemos a fazer neste exemplo.

Referência: Para conhecer o trabalho e a hierarquia de objetos javascript (Tudo isso é a base do trabalho com os elementos das páginas em Javascript) devemos ler o manual de Javascript II.

Modo de solucionar o problema

Para começar, vamos utilizar um formulário com dois selects, um para o país e outro para o estado.

<form name="f1">
<select name=pais onchange="muda_estado()">
<option value="0" selected>Selecione...
<option value="1">Espanha
<option value="2">Brasil
<option value="3">Portugal
<option value="4">França
</select>

<select name=estado>
<option value="-">-
</select>
</form>


Observamos no select associado ao país deste formulário que, quando se muda a opção de país, deve-se chamar a função muda_estado(). Veremos mais adiante esta função, agora é importante observar que está associada ao evento onchange que se ativa quando muda a opção no select.

Todo o resto será código Javascript. Começamos definindo um montão de de arrays com os estados de cada país. Neste caso temos só 4 países, então necessitaremos 4 arrays. Em cada array tenho uma lista de estados de cada país, colocados em cada um dos elementos do array. Ademais, deixaremos o primeiro campo com um valor "-" que indica que não foi selecionado nenhum estado.

var estados_1=new Array("-","Andalucía","Asturias","Baleares","Canarias","Castilla y León","Castilla-La Mancha","...")
var estados_2=new Array("-","Rio de Janeiro","Bahia","São Paulo","Santa Catarina","Minas Gerais","...")
var estados_3=new Array("-","Algarve","Alentejo","Norte","Vale do Tejo","...")
var estados_4=new Array("-","Aisne","Creuse","Dordogne","Essonne","Gironde ","...")


Observemos que os índices do array de cada país se correspondem com os do select do país. Por exemplo, a opção Espanha, tem o valor associado 1 e o array com os estados de Espanha se chama estados_1.

O script se completa com uma função que realiza o carregamento dos estados no segundo select. O mecanismo realiza basicamente estas ações:
  • Detecto o país que foi selecionado
  • Se o valor do país não for 0 (o valor 0 é quando não foi selecionado nenhum país)
    • Tomo o array de estados adequado, utilizando o índice do país.
    • Marco o número de opções que deve ter o select de estados
    • Para cada opção do select, coloco seu valor e texto associado, que faz corresponder com o indicado no array de estados.
  • SE NÃO (O valor de país é 0, não foi selecionado país)
    • Coloco no select de estado um único option com o valor "-", que significava que não havia estado.
  • Coloco a opção primeira do select de estado como o selecionado.
A função tem o seguinte código. Está comentado para que se entenda melhor.

function muda_estado(){
    //tomo o valor do select do pais escolhido
    var pais
    pais = document.f1.pais[document.f1.pais.selectedIndex].value
    /vejo se o pais está definido
    if (pais != 0) {
       //se estava definido, entao coloco as opcoes do estado correspondente.
       //seleciono o array de estado adequado
       meus_estados=eval("estados_" + pais)
       //calculo o numero de estados
       num_esatdos = meus_estados.length
       //marco o número de estados no select
       document.f1.estado.length = num_estados
       //para cada estado do array, o introduzo no select
       for(i=0;i<num_estados;i++){
          document.f1.estado.options[i].value=meus_estados[i]
          document.f1.provincia.options[i].text=meus_estados[i]
       }
    }else{
       //se não havia estado selecionado, elimino os estados do select
       document.f1.estado.length = 1
       //coloco um traço na única opção que deixei
       document.f1.estado.options[0].value = "-"
       document.f1.estado.options[0].text = "-"
    }
    //marco como selecionada a opção primeira de estado
    document.f1.estado.options[0].selected = true
}


Podemos ver uma página com o exemplo em funcionamento.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Programação em Javascript II

Dentro de Workshop de Javascript

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Javascript
+ Entrar em Manuais de Javascript


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
 Mostra-se um comentário revisto

 Comentário de Ronaldo  08/11/06 
Muito bom!

Comentário sem rever
Entre os comentários não revistos podem ter alguns interessantes que tenham sido enviado recentemente.
 Foram econtrados 2 comentários sem rever

VerVer os comentários não revistos



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites