Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Validación de formularios sin alert

Estas en el tema de Validación de formularios sin alert en el foro de Javascript en Foros del Web. He creado un formulario y su correspondiente validación usando .innerHTML y la validación va bien solo que cuando el campo es correcto quiero que desaparezca ...
  #1 (permalink)  
Antiguo 18/03/2016, 05:44
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 8 meses
Puntos: 0
Validación de formularios sin alert

He creado un formulario y su correspondiente validación usando .innerHTML y la validación va bien solo que cuando el campo es correcto quiero que desaparezca y no se como hacerlo. No se si me explico bien. Este es el codigo que he usado.
Código HTML:
Ver original
  1. <form onsubmit="return validar()">
  2.             <table>
  3.                 <tr>
  4.                     <td>
  5.                         <label for="nombre">Nombre:</label>
  6.                     </td>
  7.                     <td>
  8.                         <input type="text" id="nombre" name="nombre"/>
  9.                     </td>
  10.                 </tr>
  11.                 <tr>
  12.                     <td></td>
  13.                     <td>
  14.                         <div id="validacion_nombre" class="error"></div>
  15.                     </td>
  16.                 </tr>
  17.                 <tr>
  18.                     <td>
  19.                         <label for="apellidos">Apellidos:</label>
  20.                     </td>
  21.                     <td>
  22.                         <input type="text" id="apellidos" name="apellidos"/>
  23.                     </td>
  24.                 </tr>
  25.                 <tr>
  26.                     <td></td>
  27.                     <td>
  28.                         <div id="validacion_apellidos" class="error"></div>
  29.                     </td>
  30.                 </tr>
  31.                 <tr>
  32.                     <td>
  33.                         <label for="edad">Edad:</label>
  34.                     </td>
  35.                     <td>
  36.                         <input type="text" id="edad" name="edad"/>
  37.                     </td>
  38.                 </tr>
  39.                 <tr>
  40.                     <td></td>
  41.                     <td>
  42.                         <div id="validacion_edad" class="error"></div>
  43.                     </td>
  44.                 </tr>
  45.                 <tr>
  46.                     <td>
  47.                         <label for="telefono">Telefono:</label>
  48.                     </td>
  49.                     <td>
  50.                         <input type="text" id="telefono" name="telefono"/>
  51.                     </td>
  52.                 </tr>
  53.                 <tr>
  54.                     <td>
  55.                         <input type="submit">
  56.                     </td>
  57.                 </tr>
  58.             </table>
  59.         </form>

Y el javascript

Código Javascript:
Ver original
  1. function validar(){
  2.     //Nombre
  3.     var nombre = document.getElementById('nombre').value;
  4.     var val_nom = document.getElementById('validacion_nombre');
  5.     //Apellidos
  6.     var apellidos = document.getElementById('apellidos').value;
  7.     var val_ap = document.getElementById('validacion_apellidos');
  8.     //Edad
  9.     var edad = document.getElementById('edad').value;
  10.     var val_ed = document.getElementById('validacion_edad');
  11.    
  12.     //Validación del campo nombre
  13.     if(nombre.length == 0 || nombre == null || nombre.match(/^\s+$/)){
  14.         val_nom.innerHTML = "Campo obligatorio"
  15.         return false;
  16.     }
  17.     else if(!nombre.match(/^[a-zA-Z]+$/)){
  18.         val_nom.innerHTML = "Este campo solo debe contener texto.";
  19.         return false;
  20.     }
  21.    
  22.     //Validacion del campo apellido
  23.     else if(apellidos.lenght == 0 || apellidos == null || apellidos.match(/^\s+$/)){
  24.             val_ap.innerHTML = "Campo obligatorio";
  25.             return false;
  26.     }
  27.     else if(!apellidos.match(/^[a-zA-Z]+$/)){
  28.         val_ap.innerHTML = "Introduce solo texto"
  29.         return false;
  30.     }
  31.    
  32.     //Validacion del campo de edad
  33.     else if(edad.lenght == 0 || edad == null || edad.match(/^\s+$/)){
  34.             val_ed.innerHTML = "Campo obligatorio";
  35.             return false;
  36.     }
  37.     else if(!edad.match(/^[0-9]+$/)|| edad < 0 || edad > 150){
  38.         val_ed.innerHTML = "Introduce una edad valida";
  39.         return false;
  40.     }
  41. return true;
  42. }
  #2 (permalink)  
Antiguo 18/03/2016, 07:34
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Validación de formularios sin alert

no se si es lo que buscar, pero prueba asi y adaptalo:

Código HTML:
Ver original
  1. <form onsubmit="return validar()">
  2.             <table>
  3.                 <tr>
  4.                     <td>
  5.                         <label for="nombre">Nombre:</label>
  6.                     </td>
  7.                     <td>
  8.                         <input type="text" id="nombre" name="nombre" onChange="validar(this.id);"/>
  9.                     </td>
  10.                 </tr>
  11.                 <tr>
  12.                     <td></td>
  13.                     <td>
  14.                         <div id="validacion_nombre" class="error"></div>
  15.                     </td>
  16.                 </tr>
  17.                 <tr>
  18.                     <td>
  19.                         <label for="apellidos">Apellidos:</label>
  20.                     </td>
  21.                     <td>
  22.                         <input type="text" id="apellidos" name="apellidos" onChange="validar(this.id);"/>
  23.                     </td>
  24.                 </tr>
  25.                 <tr>
  26.                     <td></td>
  27.                     <td>
  28.                         <div id="validacion_apellidos" class="error"></div>
  29.                     </td>
  30.                 </tr>
  31.                 <tr>
  32.                     <td>
  33.                         <label for="edad">Edad:</label>
  34.                     </td>
  35.                     <td>
  36.                         <input type="text" id="edad" name="edad" onChange="validar(this.id);"/>
  37.                     </td>
  38.                 </tr>
  39.                 <tr>
  40.                     <td></td>
  41.                     <td>
  42.                         <div id="validacion_edad" class="error"></div>
  43.                     </td>
  44.                 </tr>
  45.                 <tr>
  46.                     <td>
  47.                         <label for="telefono">Telefono:</label>
  48.                     </td>
  49.                     <td>
  50.                         <input type="text" id="telefono" name="telefono" onChange="validar(this.id);"/>
  51.                     </td>
  52.                 </tr>
  53.                 <tr>
  54.                     <td>
  55.                         <input type="submit">
  56.                     </td>
  57.                 </tr>
  58.             </table>
  59.         </form>

Código Javascript:
Ver original
  1. function validar(X){
  2.  
  3. var ar = ["carlos","quintero","30","telefono"];
  4.  
  5. var valor = $("input[id="+X+"]").val();
  6.  
  7. var index = $.inArray(valor,ar);
  8.  
  9. if(index > -1){
  10.  
  11.     $("input[id="+X+"]").hide(500);
  12.   $("#validacion_"+X).html("");
  13.  
  14.  
  15. }else{
  16. $("#validacion_"+X).html("No existe esa información");
  17. $("#validacion_"+X).attr('class','noesta');
  18. }
  19.  
  20.  
  21. }

Código CSS:
Ver original
  1. .noesta{
  2.   color:#fff;
  3.   background-color:red;
  4. }

MUESTRA: https://jsfiddle.net/xfxstudios/4q1fh3j8/
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 18/03/2016, 12:07
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Validación de formularios sin alert

No. No era eso. Me he explicado mal. Quiero un formulario con validaciones normales que cuado el campo sea incorrecto lo diga y cuando sea correcto no diga nada. El problema de mi codigo es que cuando es incorrecto lo dice pero al coregirlo se queda el mensaje de error.
  #4 (permalink)  
Antiguo 18/03/2016, 12:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Validación de formularios sin alert

Como las condiciones se ejecutan una tras otra, podrías ocultar el mensaje actual en la siguiente condición, así, hasta el final.

Código Pseudocódigo:
Ver original
  1. SI condición1 ENTONCES
  2.     Instrucciones
  3. SI NO
  4.     SI condición2 ENTONCES
  5.         Ocultas el mensaje generado en la condición1
  6.         Instrucciones
  7.         ...

__________________
«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 18/03/2016, 13:46
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Validación de formularios sin alert

si observas lo que te coloque es cuestion de modificar un poco el codigo y ará lo que quieres, tan simple como eso, tampoco podemos hacer un codigo completo o una funcion completa por cada peticion porque asi no se aprende, analiza la funcion, adaptala y verás que logras tu cometido, a la final no es tan complicado lo que te indico
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 18/03/2016, 13:56
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Validación de formularios sin alert

Sobre poner un condicional else para hacerlo desaparecer o un else if lo probe pero no funciona porque deja de validar alli y no sigue con el resto. Sobre lo otro el que estoy empezando a aprender ahora con videotutoriales y aun no he llegado a la paerte de jquery. Ya lo mirare de nuevo entonces.
  #7 (permalink)  
Antiguo 18/03/2016, 14:11
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Validación de formularios sin alert

olvidalo, prueba asi:

MUESTRA: https://jsfiddle.net/xfxstudios/4q1fh3j8/3/

como veras en el ejemplo si tabulas sin escribir nada te marca el error y al escribir lo elimina, al igual que cuando envias

Saludos
__________________
[email protected]
HITCEL
  #8 (permalink)  
Antiguo 18/03/2016, 14:21
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Validación de formularios sin alert

Cita:
Iniciado por Kuina Ver Mensaje
Sobre lo otro el que estoy empezando a aprender ahora con videotutoriales y aun no he llegado a la paerte de jquery. Ya lo mirare de nuevo entonces.
tienes razón disculpa
__________________
[email protected]
HITCEL
  #9 (permalink)  
Antiguo 18/03/2016, 17:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Validación de formularios sin alert

Cita:
Iniciado por Kuina Ver Mensaje
Sobre poner un condicional else para hacerlo desaparecer o un else if lo probe pero no funciona porque deja de validar alli y no sigue con el resto [...]
Es que no se trata de que añadas bloques else if; tienes que usar los que ya tienes.
__________________
«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 18/03/2016, 17:36
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Validación de formularios sin alert

Muchas gracias. Ahora si que funciona.

Etiquetas: formulario, innerhtml, validacion
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 18:37.