Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel C Santos

Validação javascript onkeyup

Recommended Posts

Senhores, tenho um problema que é o seguinte:

 

Tenho um campo texto, que será usado para digitar (input="text") valores.

A parte decimal pode ter no máximo 9 casas e a parte fracionária 2.

Exemplo: 999999999,99.

 

Já fiz a formatação de permitir apenas números e quando chega na posição 9 colocar uma "virgula".

O usuário pode colocar a virgula também quando ele quiser:

Exemplo

999,99.

Nesse caso, se ele tentar colocar outra virgula não conseguirá.

 

O meu grande problema é descobrir e não permitir que ele faça algo do tipo:

9999999999,9 ou simplismente 99999999999,

Para ele conseguir fazer isso é apenas ele voltar a barra de texto e digitar.

 

O que eu realmente queria é não permitir que ele colocasse mais textos a esquerda caso já tenha chego ao limite.

exemplo:

if(texto.indexOf(,)==9 && "posição do cursor <9").

return false;

 

Ou até mesmo depois da virgula.

Minha idéia é pegar a posição da barra de texto no campo, mas não sei se é possivél isso.

 

Ou até mesmo pegar onde o caracter está sendo colocado no campo.

 

Alguém sabe como fazer e se isso é possível?

 

Obrigado,

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código a seguir avalia se a vírgula está na penúltima, ou última posições. Além disso, no campo texto será permitida a entrada de no máximo 12 caracteres (9 + , + 2):

 

<html>
<head>
<title></title>
</head>
<body>
<script>
function validarForm() {
	var strTexto1 = document.getElementById("texto1").value;
	//Verificando se existe vírgula na penúltima e última posições:
	var iLoop;
	var tamanhoTexto1 = strTexto1.length;
	
	for (iLoop = 2; iLoop > 0; iLoop--) {
	 var caractereAtual = strTexto1.substr(tamanhoTexto1-iLoop,1)
		if(caractereAtual == ",") {
			alert("A vírgula está no local errado!");
			document.getElementById("texto1").select();
			return false;
		}
	}
}
</script>
<form name="form1" onSubmit="return validarForm();">
<input type="text" name="texto1" maxlength="12">
<input type="submit" value="ok">
</form>
</body>
</html>

Basta implementar o modelo ao seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.