Pessoal to desenvolvendo um programa e no campo do nome queria fazer uma função onde a pessoa não conseguisse apertar espaço, forçando ela a digitar uma letra.
functionvalidarPosicao(campo){vara=campo;c1=a.value.substring(0,1);varcaractere=c1.search("[^A-Za-z-]");if(c1.length>0&&caractere>=0){alert('1º CARACTER DEVE SER UMA LETRA');campo.value="";campo.focus();returnfalse;}returntrue;}
fiz essa função que peguei na net mas não está funcionando ou coloquei no lugar errado.....
esse é (provavelmente) o problema de copiar código da internet sem estudá-lo e entendê-lo.
como você usa a função?
R
rof20004
Porque voce quer bloquear o espaço ?
DaniloAndrade
tenta assim var caractere = c1.search("^[^A-Za-z-]");
bastides
Em que momento você esta chamando essa função? na tag input poe essa função ‘onkeyup’ e chama a sua função no javaScript. Quando o user digitar a função é chamada.
[]'s
bastides
Acho que isso ja resolve seu problema. Já que você só quer tirar o espaço na primeira letra digitada.
functionvalidarPosicao(campo){//secamopnãoforvazioeprimeiracaracternãoforespaçoif(campo.length>0&&campo.value.substring(0,1)==' '){alert('1º CARACTER DEVE SER UMA LETRA');campo.value="";campo.focus();returnfalse;}returntrue;}
dentro da tag input
onkeyup="javascript:validarPosicao(seuCampo);"
tenta ai qualquer coisa avisa.
[]'s
bastides
Cara não tinha testado o codigo que te mandei. Esse acabei de testar e rolou. Mas repare que isso document.getElementById("name") só vai funcionar se na sua tag input tiver id="name"
functionvalidaEspaco(campo){alert('this.value:'+campo);if(campo.substring(0,1)==' '){alert('primeira caracter deve ser letra');document.getElementById("name").value='';}[b]if(campo==''){alert('campo obrigatório');}[/b]}
Mas como citaram mas pra cima, quando pegar algo da net tenta entender o que esta sendo feito e adaptar para o que você precisa. Senão entender o que a sintaxe faz, manda no google que você descobre ou pergunta aqui.
[]'s
B
bruce1010
bastides:
Cara não tinha testado o codigo que te mandei. Esse acabei de testar e rolou. Mas repare que isso document.getElementById("name") só vai funcionar se na sua tag input tiver id="name"
Obrigado a todos q me ajudaram.. Deu certo o código para a primeira letra ser um caractere, ao invez de espaço. \o/\o/
segue o código
functionvalidacaractere(campo){//alert('this.value:'+campo);if(campo.substring(0,1)==' '){alert('primeira caractere deve ser letra');document.getElementById("ipt_nome").value='';}}
bastides
DEmorou qualquer coisa estamos ai…
Esse alert era só pra testar se estava pegando o valor mesmo…hehehe…esqueci de tirar
[]'s
B
bruce1010
wbdsjunior:
esse é (provavelmente) o problema de copiar código da internet sem estudá-lo e entendê-lo.
como você usa a função?
regis_hideki
Procure pelo método trim() presente em várias linguagens de programação. Ele pega uma String e retira os espaços no início e no fim de uma cadeia de caracteres.
Algo parecido com “string.trim().length > 0” resolve o problema
R
rof20004
Eu perguntei pra que voce quer retirar o espaco em branco, pois, da pra fazer um trim na string, quando ela for submetida, dai voce pode fazer a validacao no proprio java mano. Eu trabalho com Struts 1, e nas minhas actions eu faco validacao de espaco, isso e costume meu, pois prefiro validar isso em Java do que encher minha pagina de javascript. Bom, fica a sugestao ou ideia.
A
AbelBueno
Não sou especialista no assunto, mas vou dar algumas sugestões de usabilidade, pra evitar que os usuários achem seu sistema chato:
Não use alerts para avisar de campos preenchidos incorretamente.
Destaque o campo com borda colorida, coloque uma mensagem do lado do campo, coisas assim.
Alert é uma das formas de aviso mais chatas que existem. E a maioria dos usuários clicam ok sem ler a mensagem.
Valide o formulário apenas na hora que ele confirmar a ação.
Geralmente no evento onsubmit do form ou no onclick do botão (se estiver utilizando ajax)
Procure “higienizar” o valor dos campos de forma transparente automaticamente antes de validar.
Por exemplo, se for um campo CPF, ao invés de bloquear ponto final e traço, deixe o usuário digitar como quiser.
Quando o campo perder o foco (ou no submit), você limpa todos caracteres que não são numéricos. Se o usuário copiou o campo de algum lugar fica mais simples pra ele.
Se o seu sistema roda em intranet, ele só fica parcialmente chato . Mas fazer validação apenas no servidor quando acessa pela internet é tortura.
(Se bem que usando struts 1 imagino que você queira descontar a dor que passa em alguém…rs)
A verdade é que você não precisa de tantos javascripts para validação.
Existem libs javascript por aí para validação de formulários de forma declarativa.
E disparar uma função única de validação para todo form.
R
rof20004
Na verdade sao sistemas legados, nao posso alterar muita coisa, visto que N pessoas fazem manutencao nos mesmos.
Sobre a tortura no servidor isso praticamente nao existe, pois esta num super servidor, com 65 GB ram e muitas outras caracteristicas de ponta =D, isso e informacao muito tecnica que nao sei lhe informar por completo.