Como faço para limitar um campo a 9 números inteiros? (Java)?

11 respostas
Sonkinha
<form method="POST" action="inserir_dados.jsp">
	<p>Insira o Valor A</p>
	<p><input type="text" name="A" size="9"></p>
        <p>Insira o Valor B</p>
        <p><input type="text" name="B" size="8"></p>
        <p>Insira o Valor C</p>
        <p><input type="text" name="C" size="8"></p>
        <p><input type="submit" value="Inserir" name="InserirDados"></p>
</form>

Como podem ver no meu formulário tenho vários campos ("A","B" e "C")
Como faço para limitar o campo "A" a 9 números inteiros obrigatóriamente?
Sei que tenho que usar ^[0-9]{1,9}$
Mas como uso isso?

11 Respostas

drsmachado

Html possui o magnífico “maxlengh”

<input type="text" maxlength="9" size="9">
G

Bom dia,

Você pode utilizar o JQuery!!
Dê uma olhada:

http://docs.jquery.com/Plugins/Validation/

Qualquer dúvida posta ai.

Att.

Sonkinha

drsmachado:
Html possui o magnífico “maxlengh”

<input type="text" maxlength="9" size="9">


“9 números inteiros obrigatoriamente”
Preciso que o cara insira 9 obrigatoriamente. Com esse código ae ele pode inserir 2!

drsmachado

javascript, meu caro.
Coloca uma função que valide a quantidade inserida, a partir do evento onKeyUp…

jscamara

o maxlenght limita o campo a 9 dígitos mas não trata se são números ou letras…
acredito que você terá que tratar via javascript.

function SomenteNumero(e){
    var tecla=(window.event)?event.keyCode:e.which;   
    if((tecla>47 && tecla<58 )) return true;
    else{
    	if (tecla==8 || tecla==0) return true;
	else  return false;
    }
}

essa função prevê que os dígitos sejam numéricos…
agora vc cria uma para tratar a obrigatoriedade da quantidade de dígitos!

Abraços

Sonkinha

Pois minha gente. O problema é que nunca usei javascript, não faço a mínima ideia como se usa. E simplesmente não tenho tempo para ir ver tutoriais de javascript pois meu projecto daqui a pouco tem de tar pronto.

Sonkinha

jscamara:
o maxlenght limita o campo a 9 dígitos mas não trata se são números ou letras…
acredito que você terá que tratar via javascript.

function SomenteNumero(e){

var tecla=(window.event)?event.keyCode:e.which;

if((tecla>47 && tecla<58 )) return true;

else{

if (tecla==8 || tecla==0) return true;

else  return false;

}

}

essa função prevê que os dígitos sejam numéricos…
agora vc cria uma para tratar a obrigatoriedade da quantidade de dígitos!

Abraços


Cara isso não precisa de especificar qual o textbox para fazer isso? O formulário está numa página e o processamento está noutra. Não da somente para fazer isso para o campo (A)?

jscamara

faz assim, no campo do input A vc adiciona o evento onKeyPress, ou o onKeyRelease,
e passa a função do javascript
tendeu?

sephil

Olá colega,

A função que o jscamara postou, recebe um evento (que é a tecla que você pressionou) para fazer a chamada dessa função, você faz assim:

<html>
<head>
   <script type="text/javascript">
    //a função vai aqui 
   </script>
</head>
<body>
...
<form>
   <input type="text" name="A" size="9" maxlength="9" onkeypress="SomenteNumero(event)">
</form>
...
</body>
</html>
Sonkinha

Blz galera. Funciona. Agradeço a todos vocês.
Agora para finalizar peço uma breve explicação a vcs do javascript aqui “postado” como sou novo em javascript não percebo a lógica dele.
E já agora…o JavaScript também pode ser usado em páginas HTML?

function SomenteNumero(e){ //blz var tecla=(window.event)?event.keyCode:e.which; //nao percebo if((tecla>47 && tecla<58 )) return true; //nao percebo else{ //blz if (tecla==8 || tecla==0) return true; //nao percebo else return false; //blz } //blz } //blz

jscamara

É assim manolo,

a variável tecla recebe pelo evento a tecla que vc digitou.
Ex: vc digitou a letra “a”

ele entra no primeiro if,
pergunta a tecla esta entre 47 e 58 ?

mas pq 47 e 58? São os códigos ASCII correspondentes aos números de 0 a 9 !
então a letra “a” não esta dentro do primeiro if,

aew vai pro segundo if,
pergunta a tecla é 8 ou 0
mesma coisa…códigos ascii correspondente ao backspace e ao null,
a letra “a” não é nenhuma dessas.

aew retorna falso e ele não adiciona no campo input text

sacou???
se retornar true, a letra é adicionada no campo!

Simples!
^^

Criado 6 de maio de 2011
Ultima resposta 6 de mai. de 2011
Respostas 11
Participantes 5