Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho o formulário abaixo:
>
<form name="f1">
<h3>Formulário de Inscrição:</h3>
<table>
<tr>
<td>
E-mail:
<input type="text" name="email" onblur="validacaoEmail(f1.email)" maxlength="60" size='65'>
</td>
<td>
<div id="msgemail"></div>
</td>
</tr>
</table>
</form>
e uso o seguinte script para validar o campo email:
>
<script language="Javascript">
function validacaoEmail(field) {
usuario = field.value.substring(0, field.value.indexOf("@"));
dominio = field.value.substring(field.value.indexOf("@")+ 1, field.value.length);
if ((usuario.length >=1) &&
(dominio.length >=3) &&
(usuario.search("@")==-1) &&
(dominio.search("@")==-1) &&
(usuario.search(" ")==-1) &&
(dominio.search(" ")==-1) &&
(dominio.search(".")!=-1) &&
(dominio.indexOf(".") >=1)&&
(dominio.lastIndexOf(".") < dominio.length - 1)) {
document.getElementById("msgemail").innerHTML="E-mail válido";
alert("E-mail valido");
}document.getElementById("msgemail").innerHTML="<font color='red'>E-mail inválido </font>";
alert("E-mail invalido");
}
}
</script>
Contudo, tentei colocar o foco devolta no campo email usando da seguinte forma e não funcionou:
>
{
document.getElementById("msgemail").innerHTML="E-mail válido";
alert("E-mail valido");
document.getElementById("email").focus();
//ou
document.f1.email.focus();
}
e não funcionaram, alguma opinião? Obrigado.
Berg, não funcionou mas obrigado. Acho que vc entendeu que os dois em vermelho foram os que usei em momentos distintos. não vejo sentido não funcionar isso, mas ele sempre passa ao campo seguinte.
Fiz uns testes no seu script e se vc fizer como eu disse só que pelo onsubmit no form funciona, mas como vc tá fazendo pelo blur direto o focus funciona mais não abilita o cursor dentro do campo a solução é chamar um setTimeout no focus:
else {
document.getElementById("msgemail").innerHTML="E-mail válido";
alert("E-mail valido");
setTimeout(function(){field.focus()}, 50);
}Muito Bom Bergs, funcionou certinho agora... viu que coloquei o exemplo pro foco no email valido, na verdade era pra quande fosse inválido né, rs.. de qualquer forma da mesma. Agradeço.
Eu gostaria de de ajuda num outro problema, contudo, um pouco mais complicado (pra mim, claro), já que a javascript não é minha praia. Minha proposta é pagar para que faça uma correção num sistema que tenho, ele é um PHP, contudo, precisa pegar um código num sistema que usa javascript (sistema que vc deve conhecer já, gratuito) pra gravar no meu banco de dados. Já tentei sozinho, mas não consegui porque não sei como o javascript funciona 'internamente'. Se gostar te passo um contato, ou você me passa o seu e combinamos. Obrigado.
testa assim:
else {