Foros del Web » Programando para Internet » Javascript »

Validar un campo input de telefono sin ser este obligatorio

Estas en el tema de Validar un campo input de telefono sin ser este obligatorio en el foro de Javascript en Foros del Web. Una pregunta un poco digamos peculiar: ¿Puedo yo hacer un campo input para validad un numero de telefono que tenga minimo 9 digitos y sea ...
  #1 (permalink)  
Antiguo 08/08/2014, 11:53
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 1 mes
Puntos: 5
Validar un campo input de telefono sin ser este obligatorio

Una pregunta un poco digamos peculiar:

¿Puedo yo hacer un campo input para validad un numero de telefono que tenga minimo 9 digitos y sea numerico, pero que solo haga la validacion si el usuario marca almenos un digito, pero que si no marcara ningun digito no considerara el campo input obligatorio?.


Es decir el input- telefono de entrada no es obligatorio, pero si marca almenos un digito, entonces comienza a validarlo cuando se le de al boton submit.


Eso se puede hacer?


ALguien puede decirme como

Mil gracias de antemano.
  #2 (permalink)  
Antiguo 08/08/2014, 14:56
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 8 meses
Puntos: 977
Respuesta: Validar un campo input de telefono sin ser este obligatorio

Claro, solamente tendrías que comprobar que el campo tiene datos con la propiedad length, en caso de haberlos, realizas la validación.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 08/08/2014, 15:46
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 1 mes
Puntos: 5
Respuesta: Validar un campo input de telefono sin ser este obligatorio

gracias alexis88 , serias tan amable de ponerme un ejemplo para mi problema , se muy poco de javascript para hacer esto.

Y si no es mucho pedir , que el mensaje de aviso salga junto al input , y no como una ventana emergente.


Si fuera php medio medio pero de javascript se me escapa.


gracias.
  #4 (permalink)  
Antiguo 08/08/2014, 15:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 8 meses
Puntos: 977
Respuesta: Validar un campo input de telefono sin ser este obligatorio

Aquí tienes uno:

Código Javascript:
Ver original
  1. function validar(){
  2.     var telefono = document.getElementById("id_del_campo"),
  3.         regex = /\d{9}/;
  4.  
  5.     if (telefono.value.length){
  6.         if (regex.test(telefono.value)){
  7.             return true;
  8.         }
  9.         else{
  10.             return false;
  11.         }
  12.     }
  13.     else{
  14.         return true;
  15.     }
  16. }

Cuando ejecutes el envío de los datos del formulario, ejecutas la función de validación, en la cual tomarás al campo a validar y crearás la expresión regular con la que validarás su contenido. Luego, evalúas la extensión del contenido del elemento en cuestión; si está es mayor a cero (también intepretado como true), verificas que el valor del campo coincida con el formato especificado en al expresión regular y de ser así, retornas true para que se realice el envío de los datos del formulario o false para no realizar el envío si no se da la coincidencia con el formato. En caso de que el campo no posea contenido (también interpretado como false), simplemente retornas true para que se realice el envío de datos del formulario.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 08/08/2014, 15:59
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 1 mes
Puntos: 5
Respuesta: Validar un campo input de telefono sin ser este obligatorio

Mil gracias por tu ayuda San alexis88 !!!!

  #6 (permalink)  
Antiguo 09/08/2014, 03:17
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 1 mes
Puntos: 5
Respuesta: Validar un campo input de telefono sin ser este obligatorio

Alexis toi triste lo he implementado pero no va, mira he puesto esto:

Código Javascript:
Ver original
  1. function validarTelefono(){
  2.         var telefono = document.getElementById("telefono_movil"),
  3.             regex = /\d{9}/;
  4.      
  5.         if (telefono.value.length){
  6.             if (regex.test(telefono.value)){
  7.                 return true;
  8.             }
  9.             else{
  10.                 return false;
  11.             }
  12.         }
  13.         else{
  14.             return true;
  15.         }
  16.     }


Código HTML:
Ver original
  1. <form id="miformulario" method="post" action="enviar.php">
  2.  
  3. <input type="number" name="telefono_movil" placeholder="Tel&eacute;fono / M&oacute;vil" value=""
  4.                                                    
  5. id="telefono_movil" class="inputstyle" size="43" maxlength="100" autocomplete="on" title="Escriba su Tel&eacute;fono / M&oacute;vil"/>
  6.  
  7.  
  8. <input name="enviar" type="image" src="../../imgs/btn_enviar.png" class="submitEnviar" onclick="validarTelefono()" value="ENVIAR" alt="enviar" />


Y el formulario se envia, si, aun metiendo un simple "4" por ejemplo en el campo del telefono.


Que esta pasando, que esta mal no se por que?
  #7 (permalink)  
Antiguo 09/08/2014, 03:42
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 1 mes
Puntos: 5
Respuesta: Validar un campo input de telefono sin ser este obligatorio

Incluso he probado a poner esto y nada:

Código HTML:
Ver original
  1. <form id="miformulario" method="post" action="enviar.php" onsubmit="validarTelefono()">

  #8 (permalink)  
Antiguo 09/08/2014, 04:35
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 1 mes
Puntos: 5
Respuesta: Validar un campo input de telefono sin ser este obligatorio

Yo me lo guiso y yo me lo como, esta es la solucion faltaba un return:


Código HTML:
Ver original
  1. <form id="miformulario" method="post" action="enviar.php" onsubmit=" return validarTelefono()">


Espero que a alguien le sirva.

Un saludo
  #9 (permalink)  
Antiguo 09/08/2014, 09:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 8 meses
Puntos: 977
Respuesta: Validar un campo input de telefono sin ser este obligatorio

Disculpa la demora en contestar, recién despierto, recuerda que no vivo en Europa y por acá es algo temprano aún.

Así es, eso es lo que te faltaba hacer, de hecho creí que lo sabías, por eso te dije que cuando hagas el envío, ejecutes la función de validación. También podrías hacerlo directamente en JavaScript:

Código Javascript:
Ver original
  1. document.getElementById("miformulario").addEventListener("submit", function(event){
  2.     event.preventDefault();
  3.     var telefono = document.getElementById("telefono_movil"),
  4.         regex = /\d{9}/;
  5.      
  6.     if (telefono.value.length){
  7.         if (regex.test(telefono.value)){
  8.             this.submit();
  9.         }
  10.     }
  11.     else{
  12.         this.submit();
  13.     }
  14. }, false);

La única diferencia está en que primero cancelo el evento submit con el método preventDefault, realizo la validación y si todo está bien, ejecuto el envío de los datos del formulario con el método submit. Como al inicio cancelo el envío de los datos, si la validación no es exitosa, simplemente no ocurre nada más pues ya se canceló el envío, por eso no hay un return false porque no es necesario, aunque podrías mostrar un mensaje de alerta en su lugar indicándole al usuario que debe de ingresar el número de teléfono correctamente.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 09/08/2014, 13:45
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años
Puntos: 1012
Respuesta: Validar un campo input de telefono sin ser este obligatorio

ambas condiciones se pueden tratar en una sola expresión
Cita:
/((?=\d*)|(\d){9})/
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: campo, input, obligatorio
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 11:10.