Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Mostrar mensaje al rellenar campos de formulario

Estas en el tema de Mostrar mensaje al rellenar campos de formulario en el foro de Jquery en Foros del Web. Hola amigos, a ver si me pueden echar una mano en esto: Tengo un par de campos "imputs" y me gustaria que cuando nada mas ...
  #1 (permalink)  
Antiguo 24/06/2014, 02:31
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Mostrar mensaje al rellenar campos de formulario

Hola amigos, a ver si me pueden echar una mano en esto:

Tengo un par de campos "imputs" y me gustaria que cuando nada mas escriba en ellos algo, me aparezca un div con un mensaje diciendo: "formulario rellenandose".

Este es el codigo que he hecho pero solo funciona con el boton que le he puesto yo. por que no se como hacer que aparezca el mensaje nada mas escribir en el input.

y aparte me sale el mensaje siempre que le doy al boton, haya puesto contenido o no en los campos input.

Agradeceria mucho una ayudita, please.

Este es el codigo que tengo hecho:

Código Javascript:
Ver original
  1. function rellenado() {
  2.            
  3.                 if ( $('#nombre' || '#apellidos').length ) {
  4.                
  5.                     document.getElementById("mensaje").style.display="block";
  6.                
  7.                     } else {
  8.                          
  9.                     document.getElementById("mensaje").style.display="none";       
  10.                        
  11.                     }
  12.                    
  13.             }


Código CSS:
Ver original
  1. #mensaje {
  2.                
  3.                 display:none;
  4.                 background-color:#999999;
  5.                 width:200px;
  6.                 height:50px;
  7.                 font-size:18px;
  8.                
  9.             }



Código HTML:
Ver original
  1. <form name="miformulario" id="miformulario" method="post" action="enviar.php">
  2.            
  3.  
  4.                 <input type="text" id="nombre" name="elnombre" placeholder="Nombre Completo" value="" title=""/>    
  5.  
  6.                 <br/>
  7.                
  8.                 <input type="text" id="apellidos" name="apellidos" placeholder="Apellidos" value="" title=""/>    
  9.  
  10.                 <br/>
  11.                
  12.                 <div id="mensaje">Formulario rellenandose</div>
  13.                
  14.                 <br/>
  15.                
  16.                 <input type="button" onClick="rellenado()" name="Rellenado" value="Rellenado" alt="Rellenado" />
  17.          
  18.         </form>
  #2 (permalink)  
Antiguo 24/06/2014, 09:47
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Mostrar mensaje al rellenar campos de formulario

Se me ocurre esto:
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.         $("input").on('focus', function(e) {
  3.           if(e.target.value == ""){
  4.             $("#mensaje").css({"display":"block"});
  5.           }else{
  6.             $("#mensaje").css({"display":"none"});
  7.           }
  8.         });
  9.        
  10.         $("input").on('blur', function(e) {
  11.             $("#mensaje").css({"display":"none"});
  12.         });
  13. });
Código HTML:
Ver original
  1. <form name="miformulario" id="miformulario" method="post" action="enviar.php">
  2.       <input type="text" id="nombre" name="elnombre" placeholder="Nombre Completo" value="" title=""/><br/>
  3.       <input type="text" id="apellidos" name="apellidos" placeholder="Apellidos" value="" title=""/><br/>
  4.       <div id="mensaje">Formulario rellenandose</div><br/>
  5.       <input type="button" name="Rellenado" value="Rellenado" />
  6.     </form>
  #3 (permalink)  
Antiguo 24/06/2014, 11:52
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mensaje al rellenar campos de formulario

Yo probaría con el evento keypress de los inputs:

Código:
$('#nombre,#apellidos').on('keypress',function(){
 $(this).val()!='' ? $("#mensaje").show() : $("#mensaje").hide();
})
Espero te sirva.
Saludos!
  #4 (permalink)  
Antiguo 24/06/2014, 13:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Mostrar mensaje al rellenar campos de formulario

Ktulu mira cuando pongo el codigo siguiente me salen los campos inputs y el mensaje directamente.

No sale el mensaje escondido (que es como deberia ser), y mostrarse cuando se escribiera algo en alguno de los inputs:

Código Javascript:
Ver original
  1. $('#nombre,#apellidos').on('keypress',function(){
  2.      $(this).val()!='' ? $("#mensaje").show() : $("#mensaje").hide();
  3.     })


Código CSS:
Ver original
  1. #mensaje {
  2.        
  3.         display:none;  
  4.            
  5.         }



Código HTML:
Ver original
  1. <form name="miformulario" id="miformulario" method="post" action="enviar.php">
  2.           <input type="text" id="nombre" name="elnombre" placeholder="Nombre Completo" value="" title=""/><br/>
  3.           <input type="text" id="apellidos" name="apellidos" placeholder="Apellidos" value="" title=""/><br/>
  4.           <div id="mensaje">Formulario rellenandose</div><br/>
  5.           <input type="button" name="Rellenado" value="Rellenado" />
  6.         </form>


Logicamente el boton que aparece es innecesario.
  #5 (permalink)  
Antiguo 24/06/2014, 13:34
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Mostrar mensaje al rellenar campos de formulario

Respecto al codigo de bathorz hace cosas muy raras veras:

Nada mas hacer click en alguno de los dos campos input aparece el mensaje. al menos deberia escribir algo diferente al texto por defecto en los campos input para que apareciera el mensaje que es como deberia ser.


en el momento que escriba en alguno de los inputs ya seria bastante para que apareciera el mensaje .

y si solo escribiera en un solo input (aunque hubiera mas inputs vacios), seria suficiente para que apareciese el texto y si le borrara el contenido desapareceria el mensaje .

es solo eso.

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.             $("input").on('focus', function(e) {
  3.               if(e.target.value == ""){
  4.                 $("#mensaje").css({"display":"block"});
  5.               }else{
  6.                 $("#mensaje").css({"display":"none"});
  7.               }
  8.             });
  9.            
  10.             $("input").on('blur', function(e) {
  11.                 $("#mensaje").css({"display":"none"});
  12.             });
  13.     });


Código CSS:
Ver original
  1. #mensaje {
  2.        
  3.         display:none;  
  4.            
  5.         }



Código HTML:
Ver original
  1. <form name="miformulario" id="miformulario" method="post" action="enviar.php">
  2.           <input type="text" id="nombre" name="elnombre" placeholder="Nombre Completo" value="" title=""/><br/>
  3.           <input type="text" id="apellidos" name="apellidos" placeholder="Apellidos" value="" title=""/><br/>
  4.           <div id="mensaje">Formulario rellenandose</div><br/>
  5.           <input type="button" name="Rellenado" value="Rellenado" />
  6.         </form>
  #6 (permalink)  
Antiguo 24/06/2014, 16:43
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mensaje al rellenar campos de formulario

Vuelvo a colocar el codigo completo jQuery con una modificación en cuanto al evento. Esta vez en lugar de usar keypress utilicé keyup.

Código:
$(document).ready(function() {
    $('#nombre,#apellidos').on('keyup',function(){
       $(this).val()!='' ? $("#mensaje").show() : $("#mensaje").hide();
    })
})
Acá el ejemplo funcionando:
http://jsfiddle.net/4RPv3/1/

Saludos!
  #7 (permalink)  
Antiguo 25/06/2014, 04:32
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Mostrar mensaje al rellenar campos de formulario

Gracias ktulu me sirvio perfectamente.

De hecho he hecho una variante para un select + options.

El codigo lo pongo a continuacion para el que le pueda servir tambien.

Solo una ultima cosa:

el codigo tal como esta si relleno los dos inputs y elijo una opcion en los dos selects,

el "mensaje" aparece y eso es fantastico pero... si una vez en este punto borro el contendo de un input al que previamente hubiera rellenado o deseleccionara un select.

automaticamente el mensaje desaparece y esto no deberia ocurrir ya que el resto de campos siguen rellenados menos uno el cual esta borrado su contendo.

¿Como puedo arreglar esto?


Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.  
  3.         $('#nombre,#apellidos').on('keyup',function(){
  4.            $(this).val()!='' ? $("#mensaje").show() : $("#mensaje").hide();
  5.         })
  6.  
  7.     })
  8.  
  9.  
  10.  
  11.     $(document).ready(function() {
  12.         $('#combo_eventos').change(function(){
  13.         <!--$( "#combo_eventos option:selected" ).each(function() {--> 
  14.            $(this).val()!='Elija evento' ? $("#mensaje").show() : $("#mensaje").hide();
  15.         })
  16.     })
  17.  
  18.  
  19.  
  20.     $(document).ready(function() {
  21.         $('#combo_menu').change(function(){
  22.            $(this).val()!='Elija menu' ? $("#mensaje").show() : $("#mensaje").hide();
  23.         })
  24.     })


Código CSS:
Ver original
  1. #mensaje {
  2.        
  3.         display:none;  
  4.            
  5.         }


Código HTML:
Ver original
  1. <form name="miformulario" id="miformulario" method="post" action="enviar.php">
  2.  
  3.           <input type="text" id="nombre" name="elnombre" placeholder="Nombre Completo" value="" title=""/><br/>
  4.          
  5.           <input type="text" id="apellidos" name="apellidos" placeholder="Apellidos" value="" title=""/><br/>
  6.          
  7.          
  8.                               <select name="combo_eventos" id="combo_eventos" title="">
  9.                              
  10.                               <option value="Elija evento" class="elija_evento">Elija bebida</option>
  11.  
  12.                                       <option value="agua">agua</option>
  13.                                       <option value="refresco" selected="selected">refresco</option>
  14.                                       <option value="vino" selected="selected">vino</option>
  15.  
  16.                               </select>  
  17.                              
  18.                              
  19.                              
  20.                               <select name="combo_menu" id="combo_menu" title="">
  21.                              
  22.                               <option value="Elija menu" class="elija_menu">Elija un menu *</option>
  23.  
  24.                                       <option value="pizza">pizza</option>
  25.                                       <option value="kebab" selected="selected">kebab</option>
  26.                                       <option value="Hamburguesa" selected="selected">Hamburguesa</option>
  27.                        
  28.                            
  29.                               </select>                                
  30.                              
  31.                          
  32.          
  33.           <div id="mensaje">Formulario rellenandose</div><br/>
  34.          
  35.         </form>
  #8 (permalink)  
Antiguo 25/06/2014, 20:56
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mensaje al rellenar campos de formulario

En ese caso vas a necesitar una función que retorne si hay campos vacíos o selects sin seleccionar a modo de validación de formularios.
Por cierto, no es necesario llamar 3 veces al método .ready(), podes incluir todo dentro de 1.
En cuanto al HTML fijate que tenes mas de un selected por grupo.

Código Javascript:
Ver original
  1. function rellenandose(){
  2.     return $('input[type="text"]').filter(function () {return !!this.value;}).length || $('select option:selected').filter(function () {return this.index>0;}).length ? true : false;
  3.        
  4. }
  5.  
  6. $(document).ready(function() {
  7.     $('input','#miformulario').on('keyup',function(){
  8.         rellenandose() ? $("#mensaje").show() : $("#mensaje").hide();
  9.     })
  10.    
  11.     $('select','#miformulario').on('change',function(){
  12.         rellenandose() ? $("#mensaje").show() : $("#mensaje").hide();
  13.     })
  14. })

Código HTML:
Ver original
  1. <form name="miformulario" id="miformulario" method="post" action="enviar.php">
  2.  
  3.           <input type="text" id="nombre" name="elnombre" placeholder="Nombre Completo" title=""/><br/>
  4.          
  5.           <input type="text" id="apellidos" name="apellidos" placeholder="Apellidos" title=""/><br/>
  6.          
  7.          
  8.                               <select name="combo_eventos" id="combo_eventos" title="">
  9.                              
  10.                               <option value="Elija evento" class="elija_evento">Elija bebida</option>
  11.  
  12.                                       <option value="agua">agua</option>
  13.                                       <option value="refresco">refresco</option>
  14.                                       <option value="vino">vino</option>
  15.  
  16.                               </select>  
  17.                              
  18.                              
  19.                              
  20.                               <select name="combo_menu" id="combo_menu" title="">
  21.                              
  22.                               <option value="Elija menu" class="elija_menu">Elija un menu *</option>
  23.  
  24.                                       <option value="pizza">pizza</option>
  25.                                       <option value="kebab">kebab</option>
  26.                                       <option value="Hamburguesa">Hamburguesa</option>
  27.                        
  28.                            
  29.                               </select>                                
  30.                              
  31.                          
  32.          
  33.           <div id="mensaje">Formulario rellenandose</div><br/>
  34.          
  35.         </form>

El ejemplo funcionando:


Saludos!

Última edición por Ktulu; 25/06/2014 a las 22:38
  #9 (permalink)  
Antiguo 26/06/2014, 02:56
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Mostrar mensaje al rellenar campos de formulario

muchas gracias fenomeno!!!

Etiquetas: campos, formulario, mensaje, rellenar
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 03:23.