Escolar Documentos
Profissional Documentos
Cultura Documentos
Primeiramente queria pedir desculpas pela demora em dar um retorno, mas esses dias foram muito intenso pra mim e
precisei dividir meu tempo entre outros compromissos...
Pois bem:
No final da ultimas aula o nosso amigo Adenilson Felipe me indagou sobre uma questão aplicada em um concurso anterior
do Banco do Brasil, e devido a falta de tempo naquele momento não deu pra analisar a questão e responder...
A questão envolve javascript, conteúdo que veremos mais pra frente, porém irei responder qual a alternativa correta e
explicarei o porque é correta e o porque que as demais não satisfaria a resposta da questão.
Observe as seguintes Figuras extraídas de uma página HTML com Javascript. A Figura 1 apresenta um campo do tipo select
sendo selecionado pelo usuário (no caso, a opção 2). A Figura 2 mostra o que acontece imediatamente depois que o
usuário seleciona a opção. O Google Chrome foi utilizado para capturar a imagem, mas o efeito seria o mesmo nos
navegadores mais utilizados.
Pois bem ao lermos a questão nos deparamos que alguns aspectos que são fundamental para a resolução da mesma.
Primeiro que está sendo usado um select, isso implica que esse componente possui uma estrutura de Array (traduzindo para
os que não conhecem essa estrutura, ele é como uma tabela, ou seja, possui linhas e colunas semelhante a uma matriz
matemática);
Segundo que o evento ocorre imediatamente após o usuário selecionar a opção, ou seja, não houve mais nenhuma outra
ação se não o clique sobre a opção selecionada.
Porque o fato de ser um componente que usa um Array, para que se consiga localizar um item nesse componente é preciso
percorrer o mesmo e sendo assim terá que ser feito o uso de um “laço” (veremos também nas próximas aulas esses
conteúdo), e só por esse motivo, já permite eliminar 3 opções das 5 que foram disponibilizadas: (Veja nas figuras 2 e 3 em
anexo)
function f() {
var campo =
document.getElementById('select');
alert(campo.selected.value);
}
</script>
function f() {
alert(campo.selected.value);
} </script>
As que possuem essa estrutura não são capazes de percorrer o Array, pois não possuem um laço. As letras C, D e E já estão
descartadas...
function f() {
var campo =
document.getElementById('select');
alert(campo.selected.value);
function f() {
//Laço for
for(var i=0; i<campo.length; i++)
if(campo.options[i].selected)
alert(campo.options[i].value);
E se observarmos a estrutura das duas ela é praticamente igual, só diferenciando-se por um detalhe: (veja nas figuras 1 e 2
em anexo).
Na linha 15 uma da alternativa B está: <select id='select' onchange="f()"> enquanto na linha 15 da alternativa A está: <select
id=ʹselectʹ onselect="f()"> e é exatamente nesse trecho que está o pulo do gato.
O evento onselect ocorre depois que algum texto foi selecionado em um elemento. É usado principalmente em <input
type="text"> ou <textarea> elementos, enquanto que o evento onchange ocorre quando o valor de um elemento foi
alterado. Para botões de rádio e caixas de seleção, o evento onchange ocorre quando o estado verificado foi alterado.