Você está na página 1de 3

Boa noite a Todos!

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.

Primeiro analisaremos o enunciado 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.

E porque isso é pertinente para a questão?

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() {

var campo = document.getElementById('select');

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...

Restam então as letras A e B.

function f() {
var campo =
document.getElementById('select');
alert(campo.selected.value);
function f() {

var campo = document.getElementById(ʹselectʹ);

//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.

O enunciado é taxativo: campo do tipo select

Por isso a opção correta é a letra B.

Segue em anexo as imagens enviadas.


Se ainda tiverem dúvida sobre essa questão, na próxima aula na quarta-feira poderei explicar oralmente...

Abraços a todos e até quarta...

Deus abençoe a todos e conceda uma ótima semana...

Você também pode gostar