Ir para conteúdo

POWERED BY:

Arquivado

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

Penner

[Resolvido] Firefox tem não aceita função

Recommended Posts

Olá galera, sou novo tanto no fórum quanto no php/javascript.

 

Eu fiz uma função com ajuda de alguns tutoriais para bloquear que o usuário digite certas letras/caractéres especiais.

 

Essa função funcionou no Chrome, Opera, Safari e no IE, menos no Firefox..

 

<script language="javascript">
    function blokletras(objEvent) 
    {
         var iKeyCode;  	
         iKeyCode = objEvent.keyCode;  	
         if(iKeyCode>=65 && iKeyCode<=90 || iKeyCode>=97 && iKeyCode<=122) return true;
         return false;
    }
</script>

 

O Erro que acontece no Firefox é que o usuário pode pressionar qualquer tecla e não terá efeito algum, eu queria que ele bloqueasse todas as teclas que não fosse de a-z ou A-Z.

 

 

Eu preciso usar algo dessa maneira, já tentei várias coisas e não obtive nenhum resultado positivo, alguém tem alguma idéia?

 

desde já agradeço, vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, se você precisa apenas remover caracters especiais, acho q essa não é a melhor forma, a melhor forma seria com expressão regular, veja isso:

 

http://snipplr.com/view/15532/replace-de-caracteres-especiais-por-seu-equivalente-sem-acento/

 

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já recorri a esse meio, mas o usuário irá digitar o nome da conta dele, apartir dai é criado um arquivo com a conta dele, existem pessoas que por mais que você envie um e-mail dizendo qual o login e a senha dele não vão perceber que alguns caractéres foram removidos, portanto preciso dessa função :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, tenta assim que funciona.

 

iKeyCode = (objEvent.which) ? evt.which : event.keyCode

 

internet Explorer pega eventos de teclas com keycode e firefox com esse which

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fernando, eu tentei mas não obtive nenhum resultado positivo, e a função deixou de funcionar nos demais navegadores.

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se quiser colocar em um html completo fique a vontade,

mas apenas pra testar.

 

<script language="javascript">
    function blokletras(objEvent) 
    {
         var iKeyCode;         
         iKeyCode = iKeyCode = (objEvent.which) ? objEvent.which : objEvent.keyCode;     
          if(iKeyCode>=65 && iKeyCode<=90 || iKeyCode>=97 && iKeyCode<=122)
return true;
       return false;

    }
</script>

<input type="text onkeypress="javascript:return false" name="nome" onkeydown="return blokletras(event)">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Farnando, seu código quase que deu certo, muito obrigado!

Agora eu só tenho um outro pequeno problema, o usuário ainda consegue utilizar éèñÉÈ e essas teclas do gênero.

eu já peguei o ID de cada tecla na Tabela ASCII e mesmo bloqueando é possível criar esses caractéres.

 

fora isso funcionou, obrigado.

 

se quiser colocar em um html completo fique a vontade,

mas apenas pra testar.

 

<script language="javascript">
    function blokletras(objEvent) 
    {
         var iKeyCode;         
         iKeyCode = iKeyCode = (objEvent.which) ? objEvent.which : objEvent.keyCode;     
          if(iKeyCode>=65 && iKeyCode<=90 || iKeyCode>=97 && iKeyCode<=122)
return true;
       return false;

    }
</script>

<input type="text onkeypress="javascript:return false" name="nome" onkeydown="return blokletras(event)">

 

 

@ EDIT - Consegui.

 

Consegui resolver meu problema, dei uma pesquisada a mais e fui tentando, até que funcionou dessa maneira, em 5 navegadores diferente, quem tiver o mesmo problema aqui fica a dica.

 

<script language="javascript">
function blokletras(objEvent) 
{
    var iKeyCode;         
    iKeyCode = iKeyCode = (objEvent.which) ? objEvent.which : objEvent.keyCode;     
    if(iKeyCode >= 65 && iKeyCode <= 90 || iKeyCode == 127) return true;
    if(iKeyCode >= 32 && iKeyCode <= 64 || iKeyCode >= 128 && iKeyCode <= 255 || iKeyCode == 96) return false;
}
</script>

<input type="text onkeypress="javascript:return false" name="nome" onkeydown="return blokletras(event)" [b]onkeypress="return blokletras(event)"[/b] />

Eu também adicionei a parte em negrito, ela resolver outros problemas.

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.