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>