Foros del Web » Programando para Internet » Javascript »

como validar los campos numericos

Estas en el tema de como validar los campos numericos en el foro de Javascript en Foros del Web. Hola, bueno tengo una duda y no se como seria la manera de hacerlo, os comento por si me quereis ayudar, se trata de varios ...
  #1 (permalink)  
Antiguo 02/10/2012, 17:24
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
como validar los campos numericos

Hola, bueno tengo una duda y no se como seria la manera de hacerlo, os comento por si me quereis ayudar, se trata de varios campos donde se insertan datos numericos en este caso referencias, el poblema lo tengo que no se como validarlo ya que se trata de bastantes campos y no todos tienen que tener un valor, pongo un ejemplo del html por si alguien me quiere dar una solucion, saludos.

Código HTML:
Ver original
  1. <form name='form'>
  2. <input type='text' name='referencia[]'/>
  3. <input type='text' name='referencia[]'/>
  4. <input type='text' name='referencia[]'/>
  5. <input type='text' name='referencia[]'/>
  6. <input type='text' name='referencia[]'/>
  7. <input type='submit'/>
  8. </form>

lo que pretendo es validar estos para que solo acepten datos numericos y que la referencia empieze por 0, realmente no se como lo puedo hacer si fuera solo un campo seria mas facil, alguna idea de como hacerlo, saludos.

Última edición por roboty; 02/10/2012 a las 17:39
  #2 (permalink)  
Antiguo 02/10/2012, 18:15
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: como validar los campos numericos

Código Javascript:
Ver original
  1. var campos = document.getElementsByName("'referencia[]");
Luego recorrés el array y verificás que
valor.charAt(0);
siendo valor el value de cada campo.
Por lo de si son sólo numeros, simplemente le hacés un onkeypress a esta función
Código Javascript:
Ver original
  1. function validar(e){
  2. var expresion=/[\d\b]/;
  3. return expresion.test(String.fromCharCode(e.which));
  4. }
ej:
Código HTML:
Ver original
  1. <input type="text" name="referencia[]" onkeypress="return validar(event)" /><br />

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 03/10/2012, 04:48
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como validar los campos numericos

Hola emprear, gracias por tu colaboracion me fue de gran ayuda para poder entenderlo, saludos.
  #4 (permalink)  
Antiguo 03/10/2012, 06:28
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como validar los campos numericos

Bueno intento crear el codigo para validar los campos intentando entender lo que me dijistes pero no me acaba de funcionar como deberia, muestro la parte del codigo de la funcion que debe validar los campos basandome en los campos que postee arriba osea esos 5 campos.codigo:

Código Javascript:
Ver original
  1. var valor=new Array();
  2.     var input=document.forms[form].elements;
  3.     var i='';
  4.     for(i=0; i<input.length; i++){
  5.         valor[i]=input[i].value;
  6.     }
  7.                 for(i=0;i<=5;i++){
  8.                     if(valor[i].length!=6 && valor[i]!='' && valor[i].charAt(0)!=0){
  9.                           alert(' el campo '+(i-2)+' no tiene formato valido');
  10.                     }else{
  11.                          alert('ahora proceso');
  12.                     }
  13.                 }

No se si se me entiende la idea, intento validar los campos para que sean de 6 caracteres empiecen por 0 y solo tenga en cuenta los campos que no estan vacios, bien el problema que tengo que no me funciona como quiero ya que quiero que si un campo no se ejecuta me salte el alert y salga de la funcion no que se sigan mostrando los demas errores, alguna ayuda para poder comprender como hacerlo, saludos.
  #5 (permalink)  
Antiguo 03/10/2012, 07:28
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: como validar los campos numericos

Ese código que ponés se aparta de tu idea original.
La idea era usar getElementsByName y no lo usaste, tampoco la función para validar. Asi que no se entiende que querés hacer.
Cita:
Bueno intento crear el codigo para validar los campos intentando entender lo que me dijistes
Ha quedado solo en eso, una intención
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. var campos = new Array();
  10. function verifica() {
  11. campos = document.getElementsByName("precio[]");
  12. var i;
  13. for (i=0; i<campos.length; i++) {
  14. var valor = campos[i].value
  15. var pc = valor.charAt(0);
  16. if(pc != '0'){
  17. alert('El numero no empieza por 0 - ' + pc);
  18. }
  19. }
  20.  
  21. }
  22.  
  23. function validar(e){
  24. var expresion=/[\d\b]/;
  25. return expresion.test(String.fromCharCode(e.which));
  26. }
  27. //]]>
  28. </head>
  29. <form action="#">
  30. <input type="text" name="precio[]" id="precio1" onkeypress="return validar(event)" /><br />
  31. <input type="text" name="precio[]" id="precio2" onkeypress="return validar(event)" /><br />
  32. <input type="text" name="precio[]" id="precio3" onkeypress="return validar(event)" /><br />
  33. <input type="text" name="precio[]" id="precio4" onkeypress="return validar(event)" /><br />
  34. <button onclick="verifica();">validar</button>
  35. </form>
  36. </body>
  37. </html>
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 03/10/2012, 08:12
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como validar los campos numericos

Tengo una duda como tendria q hacrr en la funcion verifica q si un valor no se cumple me salga sde la funcion para q no muestre todos los errores
  #7 (permalink)  
Antiguo 03/10/2012, 08:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: como validar los campos numericos

Cita:
Iniciado por roboty Ver Mensaje
Tengo una duda como tendria q hacrr en la funcion verifica q si un valor no se cumple me salga sde la funcion para q no muestre todos los errores
Redactá mejor tu duda, porque al menos yo, no entiendo nada
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 04/10/2012, 03:21
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como validar los campos numericos

Cita:
Iniciado por emprear Ver Mensaje
Redactá mejor tu duda, porque al menos yo, no entiendo nada
Perdona por mi mala explicacion, bueno estube analizando tu codigo y ahora si que lo entiendo, siento no haberle prestado la atencion necesaria a tus ayuda ya que estaban bien redactadas, ahora la duda que postee arriba que por cierto me explique fatal, es que en tu funcion verifica si un campo no empieza por 0 sale la alerta, pero como tendria que hacer si todos los campos son correctos enviar el formulario, osea hacerle un submit() al formulario, yo la unica forma que se me ocurre es creando otro if seguido del if que comprueba que el primer caracter empieza por 0, pongo un ejemplo;

Código Javascript:
Ver original
  1. if(pc != '0'){
  2.     alert('El numero no empieza por 0 - ' + pc);
  3.     }
  4.     if(pc == '0'){
  5.        document.form.submit();
  6.     }

Pero esta claro que asin no funciona ya que no es aceptado enviar formulario por cada campo, solo se deberia enviar una vez si todos los campos son correctos, alguna ayuda.
Saludos.

Última edición por roboty; 04/10/2012 a las 04:43
  #9 (permalink)  
Antiguo 04/10/2012, 04:54
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: como validar los campos numericos

La forma natural de hacerlo es con el evento onsubmit en el form

<form action="test.php" onsubmit="return verifica();">
...
<input type="submit"...>
</form>

luego en tu función

Código Javascript:
Ver original
  1. var campos = new Array();
  2. function verifica() {
  3. campos = document.getElementsByName("precio[]");
  4. var i;
  5. for (i=0; i<campos.length; i++) {
  6. var valor = campos[i].value
  7. var pc = valor.charAt(0);
  8. if(pc != '0'){
  9. alert('El numero no empieza por 0 - ' + pc);
  10. return false; // cancelás el submit
  11. }
  12. }
  13. }


es decir que si la condición no se cumple la acción del botón submit continúa y el form se envía, no es necesario forzar el envío con
document.form.submit();

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 04/10/2012, 05:39
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como validar los campos numericos

Hola emprear, muchas gracias por tu colaboracion, eso si me daba un pequello error pero el codigo funcionaba bien y estube leyendo y me di cuenta que faltaba ponerle un return true a la funcion, que entiendo que lo dejastes a proposito, gracias.

Saludos.

Etiquetas: campos, html, input, numericos
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 05:38.