SoloCodigo

Programación Web y Scripting => JavaScript => Mensaje iniciado por: zaida20 en Lunes 23 de Julio de 2007, 17:16

Título: Limpiar Un Input Type
Publicado por: zaida20 en Lunes 23 de Julio de 2007, 17:16
Hola:
Me gustaría saber como se limpia un input type, si se hace igual que un campo de texto normal:

Código: Text
  1. document.getElementById('nombre_campo').value="";
  2.  
O para un input type que contiene un botón examinar se hace de forma diferente.

Saludos y gracias!! :hola:
Título: Re: Limpiar Un Input Type
Publicado por: Mollense en Lunes 23 de Julio de 2007, 18:11
Eso funciona en FireFox pero no en IE.

Podrías hacer uso de un botón de reset para limpiar todos los inputs de un determinado form sin importar cual sean sus tipos.

Código: Text
  1. <input type="reset" value="limpiar">
  2.  

Un saludo
Título: Re: Limpiar Un Input Type
Publicado por: Altareum en Lunes 23 de Julio de 2007, 18:15
Si, funciona correctamente, aunque tanto los campos de texto, como los botones son todos input.

Altareum.

Funciona en ambos navegadores, al menos en IE6 si. Acá dejo un ejemplo:
Código: Text
  1. <body>
  2. <input type="button" id="boton1">
  3. <script>
  4. function cambiar(){
  5.   document.getElementById('boton1').value='Enviar';
  6. }
  7. </script>
  8.  
  9. <a href="javascript:cambiar()">cambiar</a>
  10. </body>
  11.  
Título: Re: Limpiar Un Input Type
Publicado por: zaida20 en Martes 24 de Julio de 2007, 09:35
Hola, si me refería a un input file, se me olvidó especificarlo :losiento: , muchas gracias por tu respuesta creo que lo he entendido.
SAludos!!!! :hola:
Título: Re: Limpiar Un Input Type
Publicado por: Mollense en Martes 24 de Julio de 2007, 18:54
Así es como lo he probado yo:
Código: Text
  1. <html>
  2.   <head>
  3.     <title></title>
  4.    
  5.     <script language="JavaScript" type="text/javascript">
  6.       function limpiar(){    
  7.         document.getElementById('archivo').value="";
  8.         return true;
  9.       }
  10.     </script>
  11.    
  12.   </head>
  13.   <body>
  14.     <form name="formulario" method="POST">
  15.       <input type="file" name="archivo" id="archivo">
  16.       <input type='button' value='limpiar' onclick='return limpiar("")' />
  17.     </form>
  18.   </body>
  19. </html>
  20.  
y no funciona en IE. Si puedo leer el value del input "archivo" pero no puedo setearlo.
Título: Re: Limpiar Un Input Type
Publicado por: Altareum en Martes 24 de Julio de 2007, 19:53
Es raro, supongo que será por cuestiones de seguridad. Igualmente tu script funciona perfecto, con cualquier tipo de input que no sea file.


Altareum.
Título: Re: Limpiar Un Input Type
Publicado por: Mollense en Martes 24 de Julio de 2007, 20:04
Cita de: "Altareum"
Es raro, supongo que será por cuestiones de seguridad. Igualmente tu script funciona perfecto, con cualquier tipo de input que no sea file.


Altareum.
Claro, ese es el tema y lo que está tratando de hacer zaida20, limpiar un intput  tipo file. Y eso es lo que no funciona en IE. Mira mi código anterior.

Un saludo
Título: Re: Limpiar Un Input Type
Publicado por: zaida20 en Miércoles 25 de Julio de 2007, 09:31
Muchas gracias por las respuestas!!!!, entonces no hay manera de dejar el campo vacío y que funcione en IE?


Saludos y gracias!!! :hola:
Título: Re: Limpiar Un Input Type
Publicado por: Altareum en Miércoles 25 de Julio de 2007, 15:42
Bueno, esto no es lo que buscabas, pero sí es una solución al problema.
Intenté varias formas, pero dan el mismo resultado, no se pude modificar un campo del tipo file en ie.

Lo que puedes hacer es, borrar el campo y crearlo de nuevo en el mismo lugar:
Código: Text
  1.  
  2. <body>
  3. <input type="file" id="boton1">
  4. <script>
  5. function cambiar(){
  6.   obj = document.getElementById('boton1');
  7.  
  8.   var newobj = document.createElement('input');
  9.   newobj.type='file';
  10.   newobj.id=obj.id;
  11.   obj.parentNode.replaceChild(newobj, obj);
  12.  
  13. }
  14. </script>
  15.  
  16. <a href="javascript:cambiar()">cambiar</a>
  17. </body>
  18.  
  19.  

O bien, clonarlo y luego reemplazar el existente:
Citar
<body>
<input type="file" id="boton1">
<script>
function cambiar(){
   obj = document.getElementById('boton1');
   
   var newobj = obj.cloneNode(true);

   newobj.value='';
   obj.parentNode.replaceChild(newobj, obj);
   
}
</script>

<a href="javascript:cambiar()">cambiar</a>
</body>


Ojo, esto solo funciona para navegadores con manejo de DOM. Puedes chequear haciendo:
Código: Text
  1.  
  2. if(document.getElementById){ ... }
  3.  
  4.  

Altareum.
Título: Re: Limpiar Un Input Type
Publicado por: Mollense en Miércoles 25 de Julio de 2007, 16:34
Excelente. Otro gran aporte de tu parte. Seguí así  :smartass:
Título: Re: Limpiar Un Input Type
Publicado por: zaida20 en Jueves 26 de Julio de 2007, 09:30
Hola Altareum:

Muy buena solución!!! ;) , una vez más mil gracias  
Saludos :hola: