Foros del Web » Programando para Internet » Javascript »

¿cómo pongo un campo file vacio desde javascript?

Estas en el tema de ¿cómo pongo un campo file vacio desde javascript? en el foro de Javascript en Foros del Web. Hola, estoy haciendo un formulario y cuando le doy a validar me envia los datos validar(this); a la funcion valiudar, en ella quiero hacer que ...
  #1 (permalink)  
Antiguo 13/12/2006, 05:02
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
¿cómo pongo un campo file vacio desde javascript?

Hola, estoy haciendo un formulario y cuando le doy a validar me envia los datos validar(this); a la funcion valiudar, en ella quiero hacer que si la foto no es JPG se ponga el campo de examinar (File) vacio... ¿Como lo podría hacer?
  #2 (permalink)  
Antiguo 13/12/2006, 05:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Hola:

Con javascript lo que podrías hacer es deshabilitarlo en el envío (o anular el envío)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 13/12/2006, 05:15
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Con javascript lo que podrías hacer es deshabilitarlo en el envío (o anular el envío)

Saludos
claro, pero ademas de esto quiero que se borre el campo de file y lo vacie !
  #4 (permalink)  
Antiguo 13/12/2006, 05:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Hola:

Con explorer he probado esto:

Código:
<html>
	<head>
		<title>
			prueba
		</title>
		<script type="text/javascript">
function valida(f) {
if (f.form.jpg.value.substr(f.form.jpg.value.length - 3).toUpperCase() == "JPG")
 alert("Ok")
else
{
 alert("NO");
 ff = f.form.jpg;
 fff = ff.cloneNode(true);
 f.form.appendChild(fff);
 f.form.removeChild(ff);
}
}
		</script>
	</head>
	<body >
<form action="" method="get" name="f">
<input type="file" name="jpg" />
<br />
<button onclick="valida(this)" />valida</button>
</form>
	</body>
</html>
Se trata de borrar el nodo previamente duplicado...

Pruébalo y nos cuentas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 13/12/2006, 05:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Hola:

Acabo de probar lo mismo en firefox, y hay que rotacar algunas cosillas...
Los botones son del tipo submit, así que debería ser <button type="button"...

La inserción habría que hacerla con insertBefore (para que no se desacomode) y al valúe habría que reinicializarlo...

Código:
 alert("NO");
 ff = f.form.jpg;
 fff = ff.cloneNode(true);
 fff.value = "";
 f.form.insertBefore(fff, ff.nextSibling);
 f.form.removeChild(ff);
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 13/12/2006, 07:20
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

hola parece que funciona muchas gracias pero no comprendo la parte de codigo esta:

Código HTML:
 ff = f.form.jpg;
 fff = ff.cloneNode(true);
 fff.value = "";
 f.form.insertBefore(fff, ff.nextSibling);
 f.form.removeChild(ff);
el ff =
el fff = no lo entiendo :s
  #7 (permalink)  
Antiguo 13/12/2006, 07:21
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

por cierto muchas gracias q con las prisas no telo dije !!
  #8 (permalink)  
Antiguo 13/12/2006, 08:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Cita:
Iniciado por Axo Ver Mensaje
hola parece que funciona muchas gracias pero no comprendo la parte de codigo esta:

Código HTML:
 ff = f.form.jpg;
 fff = ff.cloneNode(true);
 fff.value = "";
 f.form.insertBefore(fff, ff.nextSibling);
 f.form.removeChild(ff);
el ff =
el fff = no lo entiendo :s
Hola:

Trataré de darte una explicación simplificada...

Código HTML:
 ff = f.form.jpg; // ff = campo file
 fff = ff.cloneNode(true); // fff = copia del campo file
 fff.value = ""; // copia con value inicializado
 f.form.insertBefore(fff, ff.nextSibling); // insertamos copia
 f.form.removeChild(ff); // borramos campo
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 13/12/2006, 10:21
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

Aaaaaaaaaah lo que estas haciendo es clonar el campo (poner y quitar el examinar) y es por ello que tienes que clonarlo... creo que ya lo pille !

Venga, ya te digo si me sirvio un saludo y muuuuuchas gracias amigito !
  #10 (permalink)  
Antiguo 13/12/2006, 10:37
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

Bueno ahora surge otro problema... para cuando son varios examinar en forma de arrai, ejemplo:


<input type="file" name="jpg[0]" onChange="valida(this)"/>
<input type="file" name="jpg[1]" onChange="valida(this)"/>
<input type="file" name="jpg[2]" onChange="valida(this)"/>
<input type="file" name="jpg[3]" onChange="valida(this)"/>

¿Como sería? Es que no hay manera.. ni con gelenmentBY ni nada....
  #11 (permalink)  
Antiguo 13/12/2006, 11:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Hola otra vez:

No sé como lo procesas luego, pero con php no deberías poner el índice dentro de los corchetes en los nombres... de todos modos, con pocos cambios funciona...

Código:
function valida(f) {
if (f.value.substr(f.value.length - 3).toUpperCase() == "JPG")
 alert("Ok")
else
{
 alert("No")
 siguiente = f.nextSibling;
 fff = f.cloneNode(true);
 fff.value = "";
 f.form.insertBefore(fff, siguiente);
 f.form.removeChild(f);}
}
Esta vez solo lo probé en firefox.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 13/12/2006, 12:49
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

vale, me va perfecto tanto en IE como en el EXPLORE ahora... cuando meto en el fomulario, en cada campo de archivo (file) lo llamo: onchange="valida(this)" me pone error de "Argumento No valido" Linea 18 Car 2

La linea 18 seria esta:
Código HTML:
 f.form.insertBefore(fff, siguiente);
Que es lo que puede afectar? Estoy reduciendo todo el codigo de la pagina a lo mas simple posible pero ni aun asi...
  #13 (permalink)  
Antiguo 13/12/2006, 12:51
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

Se me olvidaba... lo que si me hace es crearme otro campo filex al final del formulario. Me va todo menos cuando tiene que borrar la ruta del archivo... eso no lo hace y da error.
  #14 (permalink)  
Antiguo 13/12/2006, 13:17
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Hola:

Un código completo que funciona en explorer y en firefox:

Código:
<html>
	<head>
		<title>
			prueba
		</title>
		<script type="text/javascript">
function valida(f) {
if (f.value.substr(f.value.length - 3).toUpperCase() == "JPG")
 alert("Ok")
else
{
 alert("No");
 siguiente = f.nextSibling;
 fff = f.cloneNode(true);
 fff.value = "";
 f.form.insertBefore(fff, siguiente);
 f.form.removeChild(f);
}
}
		</script>
	</head>
	<body >
<form action="" method="get" name="f">
<input type="file" name="jpg[]" onChange="valida(this)"/>
<input type="file" name="jpg[]" onChange="valida(this)"/>
<input type="file" name="jpg[]" onChange="valida(this)"/>
<input type="file" name="jpg[]" onChange="valida(this)"/>
</form>
	</body>
</html>
Pero la mala noticia es que en opera no borra los datos (duplica el campo con los datos incluídos)...
pero la buena es que se puede crear uno nuevo copiando los atributos...

Código:
<html>
	<head>
		<title>
			prueba
		</title>
		<script type="text/javascript">
function valida(f) {
if (f.value.substr(f.value.length - 3).toUpperCase() == "JPG")
 alert("Ok")
else
{
 alert("No");
 siguiente = f.nextSibling;
 fff = document.createElement("input");
 fff.type = "file";
 fff.name = f.name;
 fff.onchange = f.onchange;

// fff = f.cloneNode(false);
 fff.value = "";
 f.form.insertBefore(fff, siguiente);
 f.form.removeChild(f);
// fff.value = "";
}
}
		</script>
	</head>
	<body >
<form action="" method="get" name="f">
<input type="file" name="jpg[0]" onChange="valida(this)"/>
<input type="file" name="jpg[1]" onChange="valida(this)"/>
<input type="file" name="jpg[2]" onChange="valida(this)"/>
<input type="file" name="jpg[3]" onChange="valida(this)"/>
</form>
	</body>
</html>
Puedes probarlo directamente aquí: Probador de scripts

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #15 (permalink)  
Antiguo 13/12/2006, 13:28
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

Puff no me va... si lo hago en html tal y como me lo pones tu si.... despues lo meto en la página los type file y el javascript y nada.... no me va... me da ese error.
  #16 (permalink)  
Antiguo 13/12/2006, 13:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Hola:

Pues ya es imposible ayudarte, ya que evidentemente tienes algún conflicto con otros scripts... o pones el código mal... ¿no tendrás otro método con el mismo nombre... ?

¿Sin la validación tienes otros problemas...?
¿Los inputs están en un formulario...?

Te recomiendo que hagas esos chequeos, porque sin dudas el código funciona (probado en 3 navegadores)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #17 (permalink)  
Antiguo 13/12/2006, 13:46
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

Estoy en ello, si lo hago en html sin tocar codigo... me va perfecto pero ya cuano trato de incorporarlo me da fallo..

De todas formas ya me va :D lo he hecho el formulario que tenia desde cero y parece que va... pero estoy intentando averiguar el fallo al que es debido... ya hice todo ese proceso mucho antes de postear... es algo muy raro sinceramente el javascript y yo no acabamos de llevarnos del todo bien... :( si doy con el fallo q me daba ya te comento !

Muchas gracias por tu ayuda
  #18 (permalink)  
Antiguo 13/12/2006, 13:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: ¿cómo pongo un campo file vacio desde javascript?

Cita:
Iniciado por Axo Ver Mensaje
Estoy en ello, si lo hago en html sin tocar codigo... me va perfecto pero ya cuano trato de incorporarlo me da fallo..

De todas formas ya me va :D lo he hecho el formulario que tenia desde cero y parece que va... pero estoy intentando averiguar el fallo al que es debido... ya hice todo ese proceso mucho antes de postear... es algo muy raro sinceramente el javascript y yo no acabamos de llevarnos del todo bien... :( si doy con el fallo q me daba ya te comento !

Muchas gracias por tu ayuda
Bueno, lo dejamos pendiente y me alegro que ya te funcione... y si los archivos piensas procesarlos como array con php acuérdate de que los corchetes deben estar vacíos... pero eso ya es otro tema y de otro foro.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #19 (permalink)  
Antiguo 13/12/2006, 14:00
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Re: ¿cómo pongo un campo file vacio desde javascript?

Cita:
Iniciado por caricatos Ver Mensaje
Bueno, lo dejamos pendiente y me alegro que ya te funcione... y si los archivos piensas procesarlos como array con php acuérdate de que los corchetes deben estar vacíos... pero eso ya es otro tema y de otro foro.

Saludos
Hola, si el procesado por php no es el problema eso lo hace bien pero gracias por la anotación. Sigo buscando el error pero no lo encuentro... esto es la... jaja ahora que me va bien busco que me vaya mal en fin...

Creo que lo voy a dejar de momento, supongo que sera alguna "tonteria". Limpie codigo, deje solo y exclusivamente el que voy a necesitar y va todo correcto .

En fin muchisimas gracias de nuevo por todo !!

Saludos.
  #20 (permalink)  
Antiguo 12/04/2007, 11:05
 
Fecha de Ingreso: marzo-2003
Mensajes: 2
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: ¿cómo pongo un campo file vacio desde javascript?

hola, este es un post antiguo pero justo me encontre con este problema y la solucion que le di es esta:

el campo inserto dentro de un simple div:
Código:
<DIV id=capaarchivo ><input name="archivo" type="file" id="archivo"></DIV>
y lo borro con esta funcion javascript que invoco de donde sea necesario (en mi caso desde varios botones):

Código:
function fncBorracampofile() 
{
	capa = window.capaarchivo;
	varHTML = '';
	capa.innerHTML = varHTML;
	varHTML += '<input name="archivo" type="file" id="archivo">';
	capa.innerHTML = varHTML;
}
como ven lo que hago es eliminar y crear el campo nuevamente dentro del div con ayuda de javascript.
  #21 (permalink)  
Antiguo 14/01/2009, 11:12
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: ¿cómo pongo un campo file vacio desde javascript?

utilizando jquery para que te funcione en cualquier navegador:

$('nombrecampofile').attr('value',"");
  #22 (permalink)  
Antiguo 14/01/2009, 11:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ¿cómo pongo un campo file vacio desde javascript?

Hola:

Temas viejísimos y solucionados serán cerrados...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:03.