JQuery + HTML

Boa noite pessoal,

Gostaria de pedir ajuda para um determinada ação que quero fazer, seguinte:

Tenho um html, e no mesmo o usuário pode digitar apenas números, porém a cada numero digitado eu faço uma tratativa (uma lógica sobre o valor),
porém estou tendo um problema que se o usuário segurar qualquer numero precionado consigo pegar apenas o valor final, por exemplo:

Segura a tecla 1 = 111111…

não quero isso quero que o usuario digite um por um, assim consigo capturar o valor no momento que o usuario digita.

Estou usando o JQuery, ja tentei usar o keydown, keyuo, keypress, mais não obtive sucesso.

Alguém sabe alguma forma de bloquear esse “segurar tecla precionada”?

Obrigado.

Tratar algarismo por algarismo é uma regra de negócio ou uma especificação ?
Fiquei curioso pra saber pq q não pode tratar apenas o valor final.
Consome menos recurso (se vc acessar o servidor) kkkk

Bom, isto aqui não resolve o problema?

não vi muito sentido tb…
tenta assim…
nesse caso eu defini que o campo cep só aceita números, e tem q ter 8 nr…

$("#cep").mask("99999999");

ou ainda vc pode usar o validate do jquery…

Ola,

Eh facil fazer isso, eh soh vc criar uma flag, que vai indicar o estado do input, se pode aceitar mais digitos ou nao.

O evento keyup vai ser disparado quando vc soltar a tecla, entao eh um bom lugar para setar essa flag para true (digitacao habilitada). O evento keypress vai ocorrer quando vc pressionar qualquer teclar neste campo, entao vc tera que testar a se a flag eh true ou false, caso seja false significa que o usuario ainda nao soltou a tecla, entao vai cancelar a cadeira de evento default e os eventos posteriores ao keypress, fazendo que nenhum caractere seja inserido no campo.

Caso seja true, seta a flag para false, indicando que enquanto o usuario nao soltar nenhum digito sera aceito. Alem disso, a cadeia de eventos vai continuar normalmente e o caractere vai ser inserido no campo.

Fiz um exemplo para vc testar.

<html>
	<head>
		
	<title>test jquery</title>
		
	<script type="text/javascript" src="http://code.jquery.com/jquery.min.js" ></script>
		
	<script type="text/javascript">
			
		$(document).ready(function() {
			
			var _enableKey = true;

			$(".txtfield").keypress(function(event) {				    
				if(!_enableKey) { 
					event.preventDefault();
					return;
				}					
				_enableKey = false;
			});

			$(".txtfield").keyup(function(event) {
				_enableKey = true;
			});			
				
		});
			
	</script>
		
	</head>

	<body>
		Type something here : <input type="text" class="txtfield">			
	</body>

</html>