Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal!
Tenho um formulário onde um dos campos é do tipo select. Os valores desse campo são buscados no banco de dados.
Esse é o código do campo:
<select name='secretaria' CLASS="frm" ONBLUR="this.className='frm'" ONFOCUS="this.className='frm-on'">
<?php
echo "<option>$postsecretaria</option>";
$sqlsecretaria = "select * from email order by nome";
$consultasecretaria = mysql_query($sqlsecretaria);
while($r_secretaria = mysql_fetch_array($consultasecretaria))
{
if ($r_secretaria[nome] != $postsecretaria)
{
echo "<option>$r_secretaria[nome]</option>";
}
}
?>
Esse é o javascript do código de validação:
if (d.secretaria.value == ""){
alert ("O campo SECRETARIA/SETOR deve ser preenchido!");
d.secretaria.focus();
return false;
}
No Firefox a validação funciona corretamente, mas no Internet Explorer não está funcionando, mesmo que eu selecione um opção do campo Select ele me retorna a mensagem que o campo não foi preenchido.
Alguém tem alguma idéia de como posso consertar isso?
Desde já agradeço a ajuda de todos.
Obrigado pela ajuda William!
É possível usar o document.getElementById() no meu script? É que tenho pouca experiência e dei uma pesquisada na internet e achei outros scripts que utilizam essa função.
Assim:
<select name="secretaria" id="secretaria" class="frm" onblur="this.className='frm'" onfocus="this.className='frm-on'">e então no js:
var sec = document.getElementById('secretaria');
if ( sec.value=='' ){
alert("O campo SECRETARIA/SETOR deve ser preenchido!");
sec.focus();
return false;
}Obrigado pela ajuda William! I
Infelizmente não deu certo. Continua não funcionando no internet explorer.
Você tem mais alguma idéia de como corrigir esse erro?
posta aí exatamente o jeito que você está fazendo!
esse script do William funcionaria normalmente no IE também.
está colocando essa função no evento onsubmit do formulario?
O problema do seu script é que o IE só aceita valores explicitamente declarados na tag option
No seu php, coloque assim:
echo "<option value='$r_secretaria[nome]'>$r_secretaria[nome]</option>";ixi,
eu nem tinha visto que não tinha posto value nos options. o.O
Tent assim:
var sec = document.getElementById('secretaria');
sec.onchange = function(){
alert(this.value);
};E veja se retorna algo.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Valeu pessoal! Muito obrigado, a todos, pela ajuda!
A solução apresentada pelo AndreRO resolveu o problema.
>
O problema do seu script é que o IE só aceita valores explicitamente declarados na tag option
No seu php, coloque assim:
echo "<option value='$r_secretaria[nome]'>$r_secretaria[nome]</option>";
Valeu pessoal! Brigadão!
atribua um ID nesse select, e então prefira usar: document.getElementById()