Ir para conteúdo

POWERED BY:

Arquivado

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

kazinha

[Resolvido] campo que aceita 2 casas decimais, após vígula ou pon

Recommended Posts

Boa tarde Pessoal,

 

Estou tentando fazer a validação de um campo em javascript, que tem as seguintes premissas:

 

-Aceita números decimais( quer dizer aceita somente números e aceita somente UM ponto(.) ou uma (,) )

-Aceita somente dois números após vírgula

-Tem que ter valor mínimo de 2

-Tem que ter valor máximo de 60

 

Para isso fiz o seguinte no javascript:

<script>

 

function somenteNumero(event,obj){

 

var tecla;

 

var valorTexto = obj.value

var indexVir = valorTexto.indexOf(",")

var indexPon = valorTexto.indexOf(".")

var objTeste = /[\.\,]/.test(valorTexto)

 

if(window.event){

tecla = event.keyCode;

}else if(event.which){

tecla = event.which;

}

 

if ( tecla != 44 && tecla != 46 && tecla != 8 && tecla < 48 || tecla > 57 ){

return false;

}

 

if ( (tecla == 44 || tecla == 46) && objTeste ){

return false;

}

 

}

</script>

 

E no html fiz assim:

 

<br>Entrada:

<input type="text" id="numero" value="" OnKeyPress="return somenteNumero(event,this)">

<br>

 

 

Agora falta o campo aceitar somente dois números após a vírgula/ponto

e aceitar valor mínimo e máximo. Alguém pode me ajudar por favor, faz mais de uma semana que eu estou

tentando resolver, já estudei e tentei usar expressão regular, mas não deu muito certo.

 

obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código abaixo faz uma validação semelhante ao que você quer, utilizando Expressões Regulares.

 

Entretanto, lembre-se sempre: Números com ponto flutuante em JS, devem conter PONTO, como o próprio nome (ponto-flutuante) já diz!!!. Tem muita gente boa por aí (não estou falando de você, lógico!) tentando validar números em JavaScript que possuem vírgula, o que é um absurdo sem tamanho!

 

Não digo que é impossível validar números com vírgula, mas os mesmos deverão ser convertidos para algum formato que não as use, permitindo assim a validação, como no POST:

http://forum.imasters.com.br/index.php?/topic/352381-problema-com-somar-de-valores-javascript/

 

O código te dará uma idéia de como validar algo parecido com o que você deseja:

<html>
<head>
      <title>Expressões regulares em Javascript para iniciantes!</title>   
</head>
<body>
<script type="text/javascript">
function validar() {
var texto = document.getElementById("valor1").value;

var RegExp = /^[\d]{1,2}([.|,][\d]{2})?$/;

if (RegExp.test(texto) == true) {
		if ( texto > 60 || texto < 2) {
			alert("O valor deve estar entre 2 e 60!");
		}else{
			alert("Formato válido!");
		}
} else {
		alert("Formato inválido!");
}
}
</script>

<input type="text" id="valor1">
<input type="button" onclick="validar()" value="Validar!">
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para valor máximo e mínimo é um simples IF

 

 

IF (variavel > 10){
ação
}elseif(variavel > 1){
ação
}

Pela maneira que você informou acho que uma mascara de moeda já resolve seu problema.

Basta alterar algumas coisas caso precise.

 

Veja esse link: http://codigofonte.uol.com.br/codigo/js-dhtml/validacao/mascara-de-moeda

 

Qualquer problema ou dúvida basta tornar a postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para valor máximo e mínimo é um simples IF

 

 

IF (variavel > 10){
ação
}elseif(variavel > 1){
ação
}

Pela maneira que você informou acho que uma mascara de moeda já resolve seu problema.

Basta alterar algumas coisas caso precise.

 

Veja esse link: http://codigofonte.uol.com.br/codigo/js-dhtml/validacao/mascara-de-moeda

 

Qualquer problema ou dúvida basta tornar a postar.

 

Oi,

Sim é verdade, para os valores máximo e mínimo é relativamente simples,

mas o que mais está me preocupando é a parte de

aceitar somente duas casas decimais e não aceitar mais de uma vírgula e ponto.

 

obrigada

 

abraço

Kazinha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie,

eu sou nova em javascript,

e não consegui fazer funcionar,

mas obrigada, vou tentar me concentrar

e ver direitinho porque não está funcionando.

 

obrigada!

kazinha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não estiver conseguindo posta ai a página que tentamos dar uma olhada.

 

Bom dia klonder e Thelon,

 

Obrigada pela ajuda de vocês!! Funcionou, estava com

problemas na expressão regular, mas agora deu certo.

 

Obrigada!!

 

Kazinha

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.