Ir para conteúdo

POWERED BY:

Arquivado

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

lumiere

Validar Numeros Decimais

Recommended Posts

Bom dia!!Pessoal, eu tenho alguns Scripts que validam Numeros. Uma valida Inteiros e não deixa digitar nenhum caracter diferente de Números. A outra deixa, pois funciona para datas e Números decimais, só que o problema dessa aki eh que deixa salvar só com um ponto (.) E isso não é bom, alguém sabe como não deixar isso acontecer?Segue abaixo os Scripts que tenho:<script>function SoNumeros() // Função para Números Inteiros{var carCode = event.keyCode; if ((carCode < 48) || (carCode > 57)) { alert ("Por favor, digite apenas números!"); //alert(teclapres); event.cancelBubble = true; event.returnValue = false; return false; } } function ValidNum(e,n){ if (document.all) // Internet Explorer var tecla = event.keyCode; else if(document.layers) // Nestcape var tecla = e.which; if ((tecla ==46) || (tecla == 44) || (tecla > 46 && tecla < 58 )) // numeros de 0 a 9 , e . e / return true; else{ if ((tecla == 13)||(tecla==9)){ n.focus(); return false;} if (tecla != 8) // backspace {event.keyCode = 0; alert ("Por favor, digite somente números!"); return false; }else return true; }} </SCRIPT><body><form class="boxLeft" id="frmDecimal" action="#" ><div><label for="txtDecimal">Decimal:</label><input type="text" size="10" id="txtDecimal" name="txtDecimal" onkeypress="ValidNum(event,this.value)" /><input type="text" size="10" id="txtDecimal" name="txtDecimal" onkeypress="SoNumeros()" /> </div></form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi seu problema, o que você quis dizer com: "...só que o problema dessa aki eh que deixa salvar só com um ponto (.) ..."

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo se eu digitar no campo text: . Ou seja, apenas 1 ponto, ele vai deixar salvar. Só que eu gostaria que deixasse salvar números com pontos, caso seja decimal, mas se o usuário digitar apenas . (ponto) eu teria que informar que está errado...Consegui explicar melhor? Essas coisas estão me deixando doida...rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

function isNumber (text){  valor = parseFloat(text);  return (!isNaN(valor)); }

Esta função verifica se é um número real válido:

Retorna TRUE para: 1, 1.0, 1., 0.1, .1

Retorna FALSE para: ., "palavra", (1)

 

Na verdade seria bom que retornasse TRUE para número com parênteses casados corretamente, mas aí são outros 500's

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então fiz assim:function isNumber (text){ valor = parseFloat(text); if ((!isNaN(valor))==false){alert("Por favor, não digite ...");} return true;}Mas mesmo digitando numeros ele dah o alertSerá que não assimilei a lógica...

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.