Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   ¿cómo pongo un campo file vacio desde javascript? (http://www.forosdelweb.com/f13/como-pongo-campo-file-vacio-desde-javascript-449699/)

Axo 13/12/2006 05:02

¿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?

caricatos 13/12/2006 05:12

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 :arriba:

Axo 13/12/2006 05:15

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

Iniciado por caricatos (Mensaje 1818984)
Hola:

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

Saludos :arriba:

claro, pero ademas de esto quiero que se borre el campo de file y lo vacie !

caricatos 13/12/2006 05:31

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 :arriba:

caricatos 13/12/2006 05:48

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 :arriba:

Axo 13/12/2006 07:20

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

Axo 13/12/2006 07:21

Re: ¿cómo pongo un campo file vacio desde javascript?
 
por cierto muchas gracias q con las prisas no telo dije !! :borracho:

caricatos 13/12/2006 08:28

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

Iniciado por Axo (Mensaje 1819077)
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 :arriba:

Axo 13/12/2006 10:21

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 !

Axo 13/12/2006 10:37

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....

caricatos 13/12/2006 11:39

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 :arriba:

Axo 13/12/2006 12:49

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...

Axo 13/12/2006 12:51

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.

caricatos 13/12/2006 13:17

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 :arriba:

Axo 13/12/2006 13:28

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.

caricatos 13/12/2006 13:36

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... :pensando: ?

¿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 :arriba:

Axo 13/12/2006 13:46

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 :-D

caricatos 13/12/2006 13:55

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

Iniciado por Axo (Mensaje 1819599)
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 :-D

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 :arriba:

Axo 13/12/2006 14:00

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

Iniciado por caricatos (Mensaje 1819620)
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 :arriba:

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.

lloga 12/04/2007 11:05

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.

leopinzon 14/01/2009 11:12

Respuesta: ¿cómo pongo un campo file vacio desde javascript?
 
utilizando jquery para que te funcione en cualquier navegador:

$('nombrecampofile').attr('value',"");

caricatos 14/01/2009 11:30

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

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

Saludos :arriba:


La zona horaria es GMT -6. Ahora son las 07:13.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.