Buenas a todos, estoy elaborando un pequeño algoritmo para calcular el area de un poligono de n lados, cuando hablo de n, el poligono puede tener de 1 a 1000000 de lados, entonces lo que quiero validar que el usuario cuando me ingrese el numero de lados, solo ingrese valores enteros sin comas decimales..
Es decir que solo ingrese: 1, 2, 250, pero no 1.5, 2.6
Por ahora tengo validado que no ingrese ni valores negativos, ni caracteres, ni superiores a 1000000
Aca el codigo de mi algoritmo:
Código HTML:
Ver original
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<h1><b>CALCULO DE AREA Y PERIMETRO DE UN POLIGONO
</b></h1>
<h3>NUMERO DE LADOS
</h3>
<input type="text" name="lado" size="10" maxlength="7" />
<input type="text" name="valor" size="10" />
<input type="text" name="apotema" size="10" /><br>
<h3>VALOR PERIMETRO
</h3> <input type="text" name="perimetro">
<input type="text" name="resultado"><br>
<input type="button" value="Calcular valores" onClick="area()"> <input name="Limpiar" type="reset" id="Limpiar" value="Borrar valores ingresados ">
Y aca el codigo JavaScript donde valido (ubicando en el head):
Código Javascript
:
Ver original<script languaje="JavaScript">
function area()
{
lado=document.datos.lado.value;
valor=document.datos.valor.value;
apotema=document.datos.apotema.value;
lado = parseFloat(datos.lado.value, 10)
valor = parseFloat(datos.valor.value, 10) ;
apotema = parseFloat(datos.apotema.value, 10) ;
if ((document.datos.lado.value.length== "") || (document.datos.valor.value.length== "") || (document.datos.apotema.value.length== ""))
{
alert("EXISTEN VALORES NO INGRESADOS");
return false;
}
if ((document.datos.lado.value <= 0) || (document.datos.valor.value <= 0) || (document.datos.apotema.value <= 0))
{
alert("SOLO PUEDE INGRESAR VALORES POSITIVOS");
return false;
}
if ((document.datos.lado.value <= 0) || (document.datos.lado.value > 1000000))
{
alert("EL NUMERO DE LADOS DEL POLIGONO ES ENTRE 1 - 1 0 0 0 0 0 0");
return false;
}
if ( isNaN(lado) || isNaN(valor) || isNaN(apotema))
{
alert("TODOS LOS CAMPOS DEBEN SER VALORES NUMERICOS");
return false ;
}
perimetro=lado*valor;
document.datos.perimetro.value=perimetro;
document.datos.resultado.value=perimetro*apotema/2;
}
</script>
El algoritmo funciona y hace los calculos correctamente pero.......Como puedo hacer esa validación para que el usuario no me ingrese puntos decimales??
Agradezco me puedan colaborar