Ir para conteúdo
Fórum Script Brasil
  • 0

Bloquear Teclado Caso Nenhum Campo Seja Focalizado


RClotz

Pergunta

Eu precisaria do seguinte:

Tenho um programa (formulario) que deverá permitir apenas a digitação nos campos os valores alfanumericos ou numericos, bloqueando todo o restante das teclas.

Mas caso nenhum campo esteja em foco, ele deverá bloquear todo o teclado, para não correr o risco de o usuario dar um backspace ou algo semelhante.

Minha idéia foi a seguinte:

Pensei em usar o onfocus - permitir alfanuméricos, e onblur - bloqueando todo o teclado.

Se alguém tiver uma opção melhor, por favor me postem, mas por enquanto, eu precisaria de um script que bloqueasse todo o teclado, exceto os valores alfanuméricos e outro para os numéricos.

Caso alguém possa me arrumar um script desses.... é que eu encontrei um que bloqueia apenas certas letras, numeros e simbolos, e não bloqueia o restante das teclas, como as de função e as restantes, e outros scripts que só invertem de tecla-pressionada para tecla-solta, o que supostamente não daria pra filtrar as teclas que seria permitido o funcionamento.

Obrigado.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Muito bom este site, apesar de aparentar ter sido implantado recentemente...

Com a ajuda deste site tive outra idéia, + nada concreto ainda, se você souber como faz...

O que eu poderia fazer é algo do tipo:

Na tag <body> colocar o onKeyDown chamando a função +ou- desta maneira:

var obj = document.getElementById("*").focus();

if (!obj)

{

event.keyCode = 0;

event.returnValue = false;

}

Acho que desta forma (definindo o codigo de maneira correta) eu faria ele verificar se o foco está dentro de algum objeto, e se não estivesse ele executaria o valor dentro da condição if.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara faz o seguinte, não sei se é bem isso que você quer:

tempType = (navigator.appName == 'Netscape') ? evt.target.type : event.srcElement.type;

com essa linha de código você consegue pegar o tipo de campo que está com o foco, é só você passar o evento pra ele. Se retornar undefined é porque ele não tah com o foco em nenhum campo do formulário.

Se você não entendeu, posta ae que te explico...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia.

Crystian, posso dizer que eu compreendi mas não entendi o que você me passou, rs. Primeiro, eu acho que você acertou no que eu preciso. Vou dizer o que entendi.

Este "tempType" é uma variavel de javascript como qualquer outra e os valores depois do igual é o procedimento que ele vai fazer para pegar o tipo de campo que está em foco no momento em que foi executado o script, ok! Mas o que eu não consegui, é fazer ele funcionar, hehehe.

Para fazer o teste, eu fiz esta pagina:

<html> <head> <script>
function ver_foco() {
  tempType = (navigator.appName == 'Netscape') ? evt.target.type : event.srcElement.type;
  alert(tempType); }
  document.onKeyPress = ver_foco;
</script> </head> <body> <form name="form">
  <input type="text" name="campo">
</form> </body> </html>

Mas ele não faz nada... nem dá erro de script. Tipo, como eu faço pra ele executar este script e dar o alert exibindo o valor dentro da variavel "tempType"? Se eu entendi bem... huh.gif

valeu.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

é realmente não faz nada, é que teu código tem alguns errinhos.

primeiro, tu não passou o evento pra ele na função...

ver_foco(evt)
segundo, onKeyPress não funciona, tem que ser tudo em minúsculo, ele é case sensitive. então o código fica assim
<script>
function ver_foco(evt) {
 tempType = (navigator.appName == 'Netscape') ? evt.target.type : event.srcElement.type;
 alert(tempType);
}
document.onkeypress = ver_foco;
</script> </head> <body> <form name="form">
 <input type="text" name="campo">
</form> </body> </html>

Desculpa a demora, estou meio sem tempo hj...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa, me esqueci de te dizer uma coisa, estou meio avoado hj...hehehe...

Não tenho certeza, mas os eventos de teclado são interpretados diferentemente por cada navegador, então é bom tu dar uma olhada e ver se funciona o código no Mozilla/Netscape e no IE.

As funções são onkeypress ou onkeydown(e onkeyup se precisar)...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

RClotz

Capaz cara, eu ajudo com o maior prazer, sei como é ficar ralando altas horas pra um código q muitas vezes já existe, eu falei q tava sem tempo porque realmente tava meio apertada a coisa, mas sempre q posso dou uma olhada pra ver se ninguém precisa duma mãozinha (Nem sempre cosigo ajudar, porque sei pouco de JS, mas o pouco que sei ajuda as vezes).

Qualquer coisa posta ae...

Abração

Crystian

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...