Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Scott Byer

[Resolvido] Bug no Safari (do Mac)

Recommended Posts

Depois que terminei meu site e fui testar em todos os browsers e me deparei com um erro muito estranho no Safari pra Mac. Por que esse simples script não funciona? O alert não consegue ser chamado pelo option quando usando o onclick como atributo de evento.

 

<select>

<option onclick="alert('minha mensagem')">alerta</option>

</select>

 

 

Já o select consegue chamar o script na boa <select onclick="alert('minha mensagem')">.

Alguém consegue me explicar por que isso tá acontendo?

 

Agradeço a atenção. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq não faz sentido um elemeto option disparar um evento onclick.

 

 

você deve disparar no onchange do select.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa William, mas por que não faz sentido?

Cada option deveria disparar um evento diferente como abaixo:

 

<select>

<option onclick="alert('Rio de Janeiro')">Moro no</option>

<option onclick="alert('Rayran')">Me chamo</option>

</select>

 

Estava apenas usando o Firefox e ele aceita esse comportamento mas o Safari e Chrome não aceitam.

Já que não é usual um elemeto option disparar um evento, como faria pra disparar um evento diferente para cada option?

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites
<select onchange="alert( this.value );">
   <option value="Rio de Janeiro">Moro no</option>
   <option value="Rayran">Me chamo</option>
</select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<select onchange="alert( this.value );">
   <option value="Rio de Janeiro">Moro no</option>
   <option value="Rayran">Me chamo</option>
</select>

 

Brigadão, William! Funcionou legal, já corrigi e finalmente vou colocar meu site online. Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá William, sem querer abusar da tua boa vontade mas surgiu uma outra dúvida e acredito que você afiado do jeito que é possa me dar ulguma luz. Achei incrível a maneira como você transferiu a responsabilidade do option para o select mas as vezes eu preciso disparar mais de um evento ao mesmo tempo. Já que não posso ter mais de um "value" no option como faria pra solucionar o exemplo abaixo? Brigadaço!

 

<select>

<option onclick="window.location.href='www.google.com/maps'; alert('Rio de Janeiro')">Moro no</option>

<option onclick="window.location.href='www.bing.com/maps'; alert('Sao Paulo')">Moro em</option>

</select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, ai você vai ter q criar uma função:

<select onchange="tua_funcao( this.value );">

e nessa tua_funcao() fazer oq você tem q fazer.

Com uns ifs:

 

function tua_funcao( valor )
{
  if( valor=='Rayran' )
  {
    //executa tal
    //e executa tal
  }
}

sendo um if para cada value q você tiver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.