Foros del Web » Programando para Internet » Javascript »

Problema con validacion utilizando | | (or)

Estas en el tema de Problema con validacion utilizando | | (or) en el foro de Javascript en Foros del Web. Tengo un formulario donde ingreso tres valores numericos y lo tengo validado para que no me ingrese valores negativos, iguales a cero o de tipo ...
  #1 (permalink)  
Antiguo 07/10/2010, 14:29
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Problema con validacion utilizando | | (or)

Tengo un formulario donde ingreso tres valores numericos y lo tengo validado para que no me ingrese valores negativos, iguales a cero o de tipo caracter

La validacion no me esta funcionando en todos los campos, ya he mirado y comparado con ejemplos de otros formularios que tengo pero no encuentro cual sera mi error

Agradezco me puedan colaborar y decirme cual es mi posible error

Aca el codigo html de ingreso de los valores:

Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  2. <title>Calculo</title>
  3. </head>
  4.  
  5.  
  6. <center>
  7.   <h1><b>CALCULO DE PERIMETRO DE UN TRIANGULO</b></h1>
  8. </center>
  9. <br />
  10. <hr />
  11. <form name="datos">
  12. <br><center><h3>VALOR LADO A </h3>
  13. <input  type="text" name="ladoa" id="ladoa" size="10" />&nbsp;&nbsp; &nbsp;&nbsp;
  14. <h3>VALOR LADO B </h3>
  15. <input  type="text" name="ladob" id="ladob" size="10"   />&nbsp;&nbsp; &nbsp;&nbsp;
  16. <h3>VALOR LADO C  EN RADICAL</h3>
  17. **&nbsp;
  18.    <img src="Imagenes/radical.gif" alt="signo radical" width="44" height="48">
  19. <input  type="text" name="ladoc" id="ladoc" size="10"  />&nbsp;&nbsp; &nbsp;&nbsp;
  20.  
  21. </center><br><br></td>
  22.     <td><br><center><h3>VALOR DE LA RAIZ CUADRADA </h3>
  23.  
  24. <input type="text" name="raiz">
  25. <h3>VALOR PERIMETRO </h3>
  26. <input type="text" name="perimetro" id="perimetro"></center><br>
  27.  
  28.  <center><input type="button" value="Calcular Perimetro" onClick="sumar()" >
  29.  
  30.  
  31. </body>
  32.  </html>

Y aca el codigo JavaScript donde ejecuto la funcion sumar() ubicada en el head

Código Javascript:
Ver original
  1. <script languaje="JavaScript">
  2.          function sumar()
  3. {
  4.     ladoa=parseFloat(document.getElementById('ladoa').value);  
  5. ladob=parseFloat(document.getElementById('ladob').value);
  6. ladoc=parseFloat(document.getElementById('ladoc').value);
  7.  
  8.  if ((document.datos.ladoa.value.length== "") || (document.datos.ladob.value.length== "") || (document.datos.ladoc.value.length== "")  )
  9.                
  10.                {
  11.         alert("EXISTEN VALORES NO INGRESADOS");
  12.         return false;
  13.        
  14.           }
  15.              if ((document.datos.ladoa.value <= 0) || (document.datos.ladob.value <= 0) || (document.datos.ladoc.value <= 0))
  16.                
  17.                {
  18.         alert("SOLO PUEDE INGRESAR VALORES POSITIVOS");
  19.         return false;
  20.        
  21.           }
  22.           if ( isNaN(ladoa) ||   isNaN(ladob) || isNaN(ladoc) )
  23.            {  
  24.         alert("TODOS LOS CAMPOS DEBEN SER VALORES NUMERICOS");
  25.                
  26.         return false  ;
  27.  
  28.         }
  29.  
  30. ladoc=document.datos.raiz.value= Math.sqrt(ladoc); 
  31. perimetro=ladoa + ladob + ladoc ;
  32. document.getElementById('perimetro').value=perimetro;  
  33. }
  34.  
  35.       </script>

Donde tengo mi error??..
Agradezco la colaboracion
  #2 (permalink)  
Antiguo 07/10/2010, 14:50
 
Fecha de Ingreso: junio-2009
Mensajes: 33
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Problema con validacion utilizando | | (or)

pues ami me funciona bien.... sin embargo intenta eliminar los parentesis, tambien deberias igualar:
document.datos.ladoa.value.length== 0 , pues si lo igualas a "" tomaria espacios en blanco como contenido,
saludos
  #3 (permalink)  
Antiguo 07/10/2010, 14:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con validacion utilizando | | (or)

las referencias directas no son soportadas por la mayoría de los navegadores, debes usarlo así, con colecciones:

document.forms['datos].elements['ladoa'].value.length

además que sentido tiene hacer doble trabajo: para que conviertes primero a flotante, si necesitas primero validar si están vacios???

así es más eficiente:
Código Javascript:
Ver original
  1. <script type="text/javascript" languaje="JavaScript">
  2.     function sumar()
  3.     {
  4.         var ladoa=document.getElementById('ladoa'); //o document.forms['datos'].elements['ladoa'];
  5.         var ladob=document.getElementById('ladob');
  6.         var ladoc=document.getElementById('ladoc');
  7.  
  8.         if ((ladoa.value == "") || (ladob.value == "") || (ladoc.value == "")  )
  9.         {
  10.             alert("EXISTEN VALORES NO INGRESADOS");
  11.             return false;
  12.         }
  13.         var fladoa = parseFloat(ladoa.value);
  14.         var fladob = parseFloat(ladob.value);
  15.         var fladoc = parseFloat(ladoc.value);
  16.         if ( isNaN(fladoa) ||   isNaN(fladob) || isNaN(fladoc) )
  17.         {  
  18.             alert("TODOS LOS CAMPOS DEBEN SER VALORES NUMERICOS");
  19.             return false;
  20.         }
  21.         if ((fladoa <= 0) || (fladob <= 0) || (fladoc <= 0))
  22.         {
  23.             alert("SOLO PUEDE INGRESAR VALORES POSITIVOS");
  24.             return false;
  25.         }
  26.         ladoc.value = document.forms['datos'].elements['raiz'].value = Math.sqrt(fladoc);
  27.         var perimetro=fladoa + fladob + fladoc;
  28.         document.getElementById('perimetro').value=perimetro;  
  29.     }
  30. </script>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 07/10/2010 a las 15:03
  #4 (permalink)  
Antiguo 07/10/2010, 15:17
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Problema con validacion utilizando | | (or)

Me funciono bien, Sin embargo, en el Navegador Internet Explorer no me valida...porque??

Ademas una vez que doy clic en calcular, me imprime el valor de la raiz en los campos donde la habia ingresado

Lo probe en Google Chrome y funciona bien, ya es incompatibilidad entre los navegadores??

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.