Ir para conteúdo

POWERED BY:

Arquivado

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

littlemouse

[Resolvido] campo valor máximo menor que valor mínimo

Recommended Posts

Boa tarde Galera,

 

Por favor, fiz uma validação, mas não funciona para quando o valor mínimo é por exemplo 500,00 e o valor máximo 1.000,00. Por favor, me ajudem...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <script>
        
function validar(valormax){
if (document.form.valormax.value < document.form.valormin.value)
alert("O campo " + document.form.valormax.name + " deve ser maior que o valor mínimo!");
document.form.valormax.focus();
return false;

}    
        </script>
    </head>
    <body>
        <form name="form">
            <input name="valormin" type="text" maxlength="8" />
	    <input name="valormax" type="text" maxlength="8" />            
            <input type="button" onclick="validar(document.form.valormax);" value="validar" />
        </form>
    </body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembre-se que todas as linguagens de programação, e javascript também, trabalham no formato americano de dinheiro:

 

0000.00 (sendo o ponto o separador de centavos)

 

faça antes um replace das virgulas, para depois fazer a comparação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Google

 

Exemplo de como usar:

<script type="text/javascript">

var str="Visit Microsoft!";
document.write(str.replace("Microsoft", "W3Schools"));

</script>
http://www.w3schools.com/jsref/jsref_replace.asp

 

Qual é a dúvida? como você tentou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que a validação não está admitindo decimais. Ex: se coloco no valor mínimo 5.000,00 e no valor máximo 2, a validação não vai acusar, pois ele está veriricando só o número 5.000,00 em relação ao número 2, portanto o problema não é fazer um replace para trocar "," por "." e sim achar uma forma de fazer o if ententer os números com os decimais.

 

Por favor, conto com a ajuda do grupo.

 

Littlemouse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure entender o motivo, de não funcionar:

lembre-se que todas as linguagens de programação, e javascript também, trabalham no formato americano de dinheiro:

 

0000.00 (sendo o ponto o separador de centavos)

 

Se você não acreditar no que eu falo, ou não fazer como eu digo... vai ficar apenas copiando código sem entender o que foi feito.

 

<html>
<head>
<script type="text/javascript">
function id( el )
{
	return document.getElementById( el );
}
function validar()
{
	var max = id('valormax').value.replace('.','').replace(',','.');
	var min = id('valormin').value.replace('.','').replace(',','.');
	

	if ( max < min )
		alert("O campo " + id('valormax').value + " deve ser maior que o valor mínimo!");
	
	id('valormax').focus();
	return false;
}
</script>
</head>
<body>
	<form name="form">
		<input type="text" name="valormin" id="valormin" maxlength="8" value="5.000,00" />
		<input type="text" name="valormax" id="valormax" maxlength="8" value="4.900,50" />            
		<input type="button" onclick="validar();" value="validar" />
	</form>
</body>
</html>
:lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço pela ajuda William, mas quando coloco a opção acima de R$ 800,00 no valor mínimo e 1.000,00 como valor máximo, teoricamente era para não dar o alert, mas está dando, acho que faltou algum detalhe.

 

Obrigado mais uma vez pelo tempo despendido...

 

littlemouse

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente, está tratando como string.. faça o cast, para comparar:

if ( parseFloat(max) < parseFloat(min) )
mas continua sendo como eu disse... procure entender, nem sempre alguém estará disposto a fazer o teu trabalho assim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite William,

 

Muito obrigado, agora deu certo.

 

Concordo contigo, mas esgotei tudo que aprendi e não saia nada, vou me esforçar para melhorar.

 

Que Deus te abençoe,

 

littlemouse

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.