Foros del Web » Programando para Internet » Javascript »

Borrar input text relacionado con checkbox al deseleccionar

Estas en el tema de Borrar input text relacionado con checkbox al deseleccionar en el foro de Javascript en Foros del Web. Hola campeones: Estoy realizando un formulario con un par de checkbox que activan y desactivan unos input text segun esten seleccionados o no. El asunto ...
  #1 (permalink)  
Antiguo 25/09/2009, 06:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 23
Antigüedad: 16 años, 8 meses
Puntos: 0
Borrar input text relacionado con checkbox al deseleccionar

Hola campeones:
Estoy realizando un formulario con un par de checkbox que activan y desactivan unos input text segun esten seleccionados o no. El asunto es que va de maravilla, y al seleccionar, efectivamente los input se activan y permiten introducir datos.
El "pero" viene cuando el usuario decide no incluir más datos (por equivocación, o por decisión/indecisión) y deselecciona el checkbox. LOS DATOS SIGUEN ESCRITOS.
He buscado y rebuscado pero no se como hacer para que al deseleccionar se borren los datos.

Dejo una parte del codigo:

Código PHP:
<input name="añade1" type="checkbox" id="añade1" onClick="document.forms['comunicaciones']['apellido1b'].style.visibility =(this.checked)?'visible':'hidden';document.forms['comunicaciones']['apellido2b'].style.visibility =(this.checked)?'visible':'hidden';document.forms['comunicaciones']['nombreb'].style.visibility =(this.checked)?'visible':'hidden'"></td
      <
td class="texto">
        <
input name="apellido1b" type="text" id="apellido1b" size="18" style="visibility: hidden;">      </td>
        <
td class="texto">
        <
input name="apellido2b" type="text" id="apellido2b" size="18" style="visibility: hidden;">
      </
td>
      <
td class="texto">
        <
input name="nombreb" type="text" id="nombreb" size="15" style="visibility: hidden;"
Gracias por adelantado al que se anime a responder con algo de ayuda
Un saludo
  #2 (permalink)  
Antiguo 25/09/2009, 07:19
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 9 meses
Puntos: 139
Respuesta: Borrar input text relacionado con checkbox al deseleccionar

Código HTML:
Ver original
  1.    
  2. function seleccionar(){
  3.    
  4.     var chk = document.getElementById('añade1');
  5.        
  6.         if(chk.checked){
  7.                 rese();
  8.             document.getElementById('Inputs').style.display='none';
  9.         }
  10.         else
  11.         {
  12.         document.getElementById('Inputs').style.display='block';
  13.         }
  14.  
  15.     }
  16.  
  17.  
  18.     function rese(){
  19.        
  20.         document.getElementById('apellido1b').value = "";
  21.         document.getElementById('apellido2b').value = "";
  22.         document.getElementById('nombreb').value = "";
  23.     }
  24.  
  25.  
  26.  
  27.  
  28. <form name="comunicaciones">
  29. <input name="añade1" type="checkbox" id="añade1" onClick="seleccionar()">  
  30.       <div id="Inputs">
  31.    
  32.         <input name="apellido1b" type="text" id="apellido1b" size="18" >      
  33.         <input name="apellido2b" type="text" id="apellido2b" size="18">
  34.         <input name="nombreb" type="text" id="nombreb" size="15">
  35.        
  36.        </div>
  37.        
  38.        </form>
  #3 (permalink)  
Antiguo 25/09/2009, 08:01
 
Fecha de Ingreso: septiembre-2007
Mensajes: 23
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Borrar input text relacionado con checkbox al deseleccionar

Mil gracias por tu RRRRRRRapidez!!
PERO lo he probado y no funciona.
Veamos:
Primero tengo un checkbox que activa o desactiva la visibilidad de varios checkbox más.

Código PHP:
<span class="texto">Añadir autores </span><input id="activar" type="checkbox" class="switch-datos"/> 
y más tarde tengo los checkbox que activan o desactivan los input apellido1b, apellido2b y nombre

Código PHP:
<input name="añade1" type="checkbox" id="añade1" onClick="document.forms['comunicaciones']['apellido1b'].style.visibility =(this.checked)?'visible':'hidden';document.forms['comunicaciones']['apellido2b'].style.visibility =(this.checked)?'visible':'hidden';document.forms['comunicaciones']['nombreb'].style.visibility =(this.checked)?'visible':'hidden'"></td
      <
td class="texto">
        <
input name="apellido1b" type="text" id="apellido1b" size="18" style="visibility: hidden;">      </td>
        <
td class="texto">
        <
input name="apellido2b" type="text" id="apellido2b" size="18" style="visibility: hidden;">
      </
td>
      <
td class="texto">
        <
input name="nombreb" type="text" id="nombreb" size="15" style="visibility: hidden;"
He probado a incluir la función entre los script que tengo y llamar tal y como me comentas pero falla.

Insisto en que tan solo necesito que en el caso de que se desactive el segundo checkbox, los input apellido1b, apellido2b y nombre queden en blanco.

De todas formas, gracias otra vez por la pronta respuesta.

¿¿¿A alguien se le ocurre alguna otra forma???

Un saludo
  #4 (permalink)  
Antiguo 25/09/2009, 10:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 190
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Borrar input text relacionado con checkbox al deseleccionar

Esto debe ir a Javascript...

Código:
<script type="text/javascript">
function cambiar_estados(check){
if (check.checked == true){
	document.getElementById('apellido1b').style.visibility = "visible";
	document.getElementById('apellido2b').style.visibility= "visible";
	document.getElementById('nombreb').style.visibility= "visible";
}
}
</script>

<input name="añade1" type="checkbox" id="añade1"  onclick="cambiar_estados(this)"  /></td>  
      <td class="texto"> 
        <input name="apellido1b" type="text" id="apellido1b" size="18" style="visibility: hidden;" />      </td> 
        <td class="texto"> 
        <input name="apellido2b" type="text" id="apellido2b" size="18" style="visibility: hidden;" /> 
      </td> 
      <td class="texto"> 
        <input name="nombreb" type="text" id="nombreb" size="15" style="visibility: hidden;" />
  #5 (permalink)  
Antiguo 25/09/2009, 11:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Borrar input text relacionado con checkbox al deseleccionar

Tema trasladado desde PHP
  #6 (permalink)  
Antiguo 26/09/2009, 06:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 23
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Borrar input text relacionado con checkbox al deseleccionar

Gracias por la segunda respuesta, y gracias también al moderador por estar tan atento. En principio creí que existia alguna sentencia en php que pudiera responder al tema.

Respecto a las propuestas, he probado la segunda, y funciona en parte para lo que quiero, pero solo es una alternativa (seguramente mejor que la que yo he planteado) para hacer aparecer y desaparecer los input text.

A pesar de ello, no realiza la acción de borrado y en IE8 la página se carga con errores (error de sentencia).

Seguiré buscando la opción más acercada

Gracias de nuevo.

Un saludo
  #7 (permalink)  
Antiguo 26/09/2009, 07:16
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 3 meses
Puntos: 772
Respuesta: Borrar input text relacionado con checkbox al deseleccionar

Hola Imanol78

Código javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function ver(chk) {
  5.   obj=chk.form;
  6.   obj.apellido1b.style.visibility = (chk.checked) ? 'visible' : 'hidden';
  7.   obj.apellido2b.style.visibility = (chk.checked) ? 'visible' : 'hidden';
  8.   obj.nombreb.style.visibility = (chk.checked) ? 'visible' : 'hidden';
  9.   if (chk.checked) {
  10.     obj.apellido1b.value='';
  11.     obj.apellido2b.value='';
  12.     obj.nombreb.value='';
  13.   }
  14. }
  15. </script>
  16. </head>
  17. <body>
  18. <form>
  19. <input name="añade1" type="checkbox" id="añade1" onclick="ver(this)"></td>
  20.       <td class="texto">
  21.         <input name="apellido1b" type="text" id="apellido1b" size="18" style="visibility: hidden;">      </td>
  22.         <td class="texto">
  23.         <input name="apellido2b" type="text" id="apellido2b" size="18" style="visibility: hidden;">
  24.       </td>
  25.       <td class="texto">
  26.         <input name="nombreb" type="text" id="nombreb" size="15" style="visibility: hidden;">
  27. </form>  
  28. </body>
  29. </html>

Saludos,
  #8 (permalink)  
Antiguo 28/09/2009, 00:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 23
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Borrar input text relacionado con checkbox al deseleccionar

Muchas gracias por la respuesta.
Ya tengo el formulario publicado y en funcionamiento y de momento viene toda la información bien. He utilizado el código que yo tenía publicado.
Algo que me deja asombrado es la cantidad de ayuda que se recibe desde este foro. ¡Increible la participación de la gente como vosotros!
Un abrazo
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 16:13.