msoliver
(usa Debian)
Enviado em 05/06/2024 - 19:34h
dark777 escreveu:
E ae Galera do JavaScript blz?
fiz uma função em javascript para validar inputs relacionado a altura de uma pessoa para calculo de IMC, entao tenho isso em html:
<div class="form-group">
<label class="ml-1">Altura em metros/centímetros: </label>
<input class="form-control" type="text" id="alturaPessoa" name="altura" min="1" max="250"
oninput="validaAltura(this)" placeholder="ex: 40cm à 250cm ou 1.10m à 2.50m">
</div>
e fiz esta função em JavaScript:
function validaAltura(input) {
let altura = parseInt(input.value);
if (altura !== "" && (altura < input.min || altura > input.max)) {
alert("Altura deve estar entre 40 e 250 centímetros!\nInput max: " + input.max + " centímetros!");
input.value = ""; // Limpa o valor inserido
}
let altura2 = parseFloat(input.value);
if (altura2 !== "" && (altura2 < parseFloat(input.min) || altura2 > parseFloat(input.max))) {
alert("Altura deve estar entre 1 e 2.50 metros!\nInput max: " + parseFloat(input.max) + " centímetros!");
input.value = ""; // Limpa o valor inserido
}
}
quando a pessoa digita 251 ele esta validando mas se a pessoa digitar "2.51" ele nao esta verificando o input como fazer isso funcionar corretamente.
PS: nao é minha intenção pegar smente um tipo de valor pois o calculo esta sendo feito tando com valor em centímetros quanto em metros.
wiki.anon
/*----------------------------------------------------------------------------------------------*/
Boa noite Dark, segue....
<!doctype html>
<html>
<head>
<style>
INPUT{width: 25%;}
#err{color:#f00;}
#act{color:#0f0;}
</style>
</head>
<body>
<div>
<label for="alturaPessoa">Altura em metros/centímetros: </label>
<input type="text" id="alturaPessoa" onchange="valida(this)" placeholder="ex: 40cm à 250cm ou 0.4m à 2.5m">
<p id='msg'>msg</p>
</div>
<script>
function valida(t) {
var alt=0, x=t.value;
if ((/[.,]/).test(x)){ //checa se tem virgula ou ponto
alt=(Number(x.replace(/,/,".")))*100; // Se tem "," troca por "." e converte para cm
}else{
alt=x;
}
if(alt>=40 && alt<=250){
msg.innerHTML="<b id='act'>Okay</b><br>Calcular IMC"
/* Calcular IMC */
}else{
msg.innerHTML="<b id='err'>ERRO!</b><br>Altura deve estar entre 40 e 250 centímetros!";
}
setTimeout(()=>{t.value=''},500);
}
</script></body></html>
______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/udou.$/s/^[ ]+//p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA , faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________