Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

24-10-2012 12:06

Olá pessoal...

Seguinte: Preciso restringir caracteres especiais em um campo input e permitir apenas números, letras (maíusculas e/ou minúsculas) e também acentuação. Acontece que os códigos que eu encontrei bloqueia também a acentuação.

Um código que mais se aproximou do que eu preciso foi o seguinte:

<script> function sem_acento(e,args) {                       if (document.all){var evt=event.keyCode;} // caso seja IE         else{var evt = e.charCode;}     // do contrário deve ser Mozilla         var valid_chars = '0123456789abcdefghijlmnopqrstuvxzwykABCDEFGHIJLMNOPQRSTUVXZWYK-_/^~´`@.'+args;      // criando a lista de teclas permitidas         var chr= String.fromCharCode(evt);      // pegando a tecla digitada         if (valid_chars.indexOf(chr)>-1 ){return true;} // se a tecla estiver na lista de permissão permite-a         // para permitir teclas como <BACKSPACE> adicionamos uma permissão para         // códigos de tecla menores que 09 por exemplo (geralmente uso menores que 20)         if (valid_chars.indexOf(chr)>-1 || evt < 9){return true;}                 if (valid_chars.indexOf(chr)>30 || evt <35){return true;} //permite a tecla espaço         return false;   // do contrário nega } </script>


<input type="text" name="qlqr" onkeypress="return sem_acento();">

Mas o problema e que ele bloqueia acentuação também!

Se alguém puder ajudar, ficarei grato! ^^
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Bloquear caracteres especiais mas permitir acentuação

24-10-2012 12:28

Qual valor você passa return sem_acento(aqui), no input ?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 12:23

Opa Web... Desculpa a demora, mas vamos lá...

Eu gostaria de escrever a palavra "Comunicação" por exemplo. Mas esse código não permite acentuação, ou seja, ele só permite as seguintes letras "Comunicao".
Eu gostaria de bloquear apenas "/\;.~^´`¨'"<>?!ªº+=¬¢£³²¹()"... Basicamente esses, mas não sei como fazê-lo!

=/
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 12:55

Tem um plugin nesse link http://www.thimbleopensource.com/tutori ... text-input

É um plugin bem fácil de usar, só chamar após a chamada do jQuery. Tem vários filtros, para aceitar nos inputs só números, textos, etc...

Eu fiz uma adaptação para aceitar só números e textos, alguns caracteres já acentuados e espaço, testa ai

<script src="jquery.js"></script> <script src="http://www.thimbleopensource.com/download/jquery/jquery.filter_input.js"></script>   <script> $(document).ready(function() { $('input').filter_input({regex:'[a-zA-Z0-9-éçãí ]'}); }); </script> <input type="text" name="" value="">

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 14:34

Utilizei o código mas ele não funcionou! Ele não permite os acentos e nem mesmo os "Ç" e "Ã" que foi inserido como permitido! =/
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 14:39

Tem que adicionar o caracter e maiúsculo acentuado também

$('input').filter_input({regex:'[a-zA-Z0-9-éçÇãÃí ]'});

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 14:43

Não não... Eu postei em Maiúsculo para destacar, mas nem em minúsculo está funcionando... nem com a sua nova função!

=/

Será que há alguma maneira?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 14:48

Você tem o jquery ai no seu servidor? Porque estou testando aqui e está ok, posso colocar no input CANÇÃO canção que aceita.

Coloquei o teste no servidor
http://www.codigosnaweb.com/teste.php
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 14:55

Nossa... Realmente funcionou no seu servidor, mas no meu não!

Eu estava puxando de um servidor externo, mas eu coloquei exatamente o seu jquery no meu servidor e não funcionou!

http://sorocaba.guiaa.com

Porque será que não está funcionando?
0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 14:57

Problema resolvido!

Era o meu arquivo que estava em formato ANSI... A acentuação colocada no arquivo estava dando pau, troquei a Codificação do arquivo para UTF-8 e funcionou normal!

Acho que até outros códigos que havia tentado antes não funcionaram por conta disso!

Muito obrigado web!

Abçs! :P
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 14:58

Boa. ;)
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 15:02

Só um detalhe, que agora você realmente poderá ajudar...

Se alguém copiar e colar caracteres inválidos ele irá aceitar... Como bloquear isso?

Exemplo: se eu copiar e colar: "<>" ele irá aceitar!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 15:17

Logo após a linha do ready, coloca isso

$('input').bind("cut copy paste",function(e) { e.preventDefault(); });

Isso previne o Ctrl+v
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Bloquear caracteres especiais mas permitir acentuação

04-11-2012 17:57

Agora Sim! PERFEITO!

Show web... Mais uma vez, como sempre, muito obrigado! ;)
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado