Foros del Web » Programando para Internet » Javascript »

Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD jaja

Estas en el tema de Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD jaja en el foro de Javascript en Foros del Web. Necesito ayuda con este código, no creo q vaya a ser una solución muy complicada tengo 2 problemas... Primero: (no me interesa mucho si se ...
  #1 (permalink)  
Antiguo 11/02/2008, 23:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 3 meses
Puntos: 0
Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD jaja

Necesito ayuda con este código, no creo q vaya a ser una solución muy complicada

tengo 2 problemas...

Primero: (no me interesa mucho si se resuelve o no)... al escribir directamente en el textbox (id=pathbox) y luego sacar el foco de él (se activa el onblur) no me cambia el contenido del input file (id=file). Esto no me importa si se resuelve, pues puedo simplemente ponerle un readonly y evitar que el usuario lo modifique a mano...

Segundo: no me funciona en internet explorer T.T, lo de que luego del click en el boton de buscar me apareza el contenido del input file dentro del textbox

Gracias de antemano... espero que a alguien le sirva el código, pues los que he visto similares funcionan para internet explorer, pero no para firefox... no quiero duplicar la cantidad de código para casos específicos, aunque si no tengo solución para esto tendré que hacerlo.

El código:

Código:
<html>

<head>
  <style>
  .tunedtextbox{
    border:0;
    background-color:transparent;
    background-image:url('http://img85.imageshack.us/img85/7228/boxbkgrhn4.gif');
    background-repeat:no-repeat;
    color:white;
  }
  .pathfield{
    position:absolute;
    top:0px;
    left:0px;
    width:153px;
    height:30px;
  }
  .filetextbox{
    position:absolute;
    top:5px;
    left:5px;
  }
  .filefield{
    position:absolute;
    top:5px;
    left:5px;
    width:243px;
    height:20px;
  }
  .searchbutton{
    position:absolute;
    top:0px;
    left:148px;
  }
  .fileinput{
    position:absolute;
    top:0px;
    left:0px;
    -moz-opacity:0;
    filter:alpha(opacity: 0);
  }
  #fileform1{
    position:absolute;
    top:50px;
    left:100px;
  }
  </style>
  <script type='text/javascript'>
    HTMLElement.prototype.copyvalueto = function(target){
      document.getElementById(target).value=this.value;
    }
  </script>
</head>

<body>
  <form>
    <div class="atorigin allsize" id="fileform1">
      <div class="filefield">
        <img class="searchbutton" src="http://img158.imageshack.us/img158/7820/fakebuscarzo3.jpg"/>
        <div class="fileinput">
          <input type="file" id="file" name="file" onclick="this.copyvalueto('pathbox')"/>
        </div>
      </div>
      <div class="pathfield"> 
        <input class="tunedtextbox filetextbox" id="pathbox" name="pathbox" type="text" onchange="this.copyvalueto('file')"/>
      </div>
    </div>
  </form>

  <font style="color:red;" onClick="alert(document.getElementById('fileu').value);">Haz click aquí para ver el contenido del File Input!!</font>
</body>

</html>
  #2 (permalink)  
Antiguo 11/02/2008, 23:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD j

Hola:

En explorer no existe el HTMLElement... los tags son objetos "llanos" (Object)... para asignar un comportamiento a un tag deberías referenciarlo por el id.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 12/02/2008, 00:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD j

He cambiado lo de HTMLElement y pues sigue funcionando en Firefox pero no en IE...

Código:
<html>

<head>
  <style>
  .tunedtextbox{
    border:0;
    background-color:transparent;
    background-image:url('http://img85.imageshack.us/img85/7228/boxbkgrhn4.gif');
    background-repeat:no-repeat;
    color:white;
  }
  .pathfield{
    position:absolute;
    top:0px;
    left:0px;
    width:153px;
    height:30px;
  }
  .filetextbox{
    position:absolute;
    top:5px;
    left:5px;
  }
  .filefield{
    position:absolute;
    top:5px;
    left:5px;
    width:243px;
    height:20px;
  }
  .searchbutton{
    position:absolute;
    top:0px;
    left:148px;
  }
  .fileinput{
    position:absolute;
    top:0px;
    left:0px;
    -moz-opacity:0;
    filter:alpha(opacity: 0);
  }
  #fileform1{
    position:absolute;
    top:50px;
    left:100px;
  }
  </style>
  <script type='text/javascript'>
    function copyvalue(target,source){
      document.getElementById(target).value=document.getElementById(source).value;
    }
  </script>
</head>

<body>
  <form>
    <div class="atorigin allsize" id="fileform1">
      <div class="filefield">
        <img class="searchbutton" src="http://img158.imageshack.us/img158/7820/fakebuscarzo3.jpg"/>
        <div class="fileinput">
          <input type="file" id="file" name="file" onclick="copyvalue('pathbox','file')"/>
        </div>
      </div>
      <div class="pathfield"> 
        <input class="tunedtextbox filetextbox" id="pathbox" name="pathbox" type="text" onchange="copyvalue('file','pathbox')"/>
      </div>
    </div>
  </form>

  <font style="color:red;" onClick="alert(document.getElementById('file').value);">Haz click aquí para ver el contenido del File 

Input!!</font>
</body>

</html>
  #4 (permalink)  
Antiguo 12/02/2008, 00:56
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD j

Hola:

Supongo que tendrías que usar del "file" el evento change...

<input type="file" onchange="pathbox.value = this.value"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 12/02/2008, 01:12
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD j

Hola,

Eso fue rápido jeje
Funciona a la perfección con onchange, gracias.

Ahora, ¿sabes si es posible cambiar el valor del .value del input type=file mediante una asiganción directa?

Muchas gracias!
  #6 (permalink)  
Antiguo 12/02/2008, 01:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD j

Cita:
Iniciado por R00110 Ver Mensaje
Hola,

Eso fue rápido jeje
Funciona a la perfección con onchange, gracias.

Ahora, ¿sabes si es posible cambiar el valor del .value del input type=file mediante una asiganción directa?

Muchas gracias!
¡No, no es posible!... un file solo puede cambiar con el botón que lo acompaña y el comportamiento del usuario... no me gustaría entrar en una página y que haya un control con un fichero de mi máquina sin mi consentimiento.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 12/02/2008, 01:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Modificar diseño de input type=file... me funciona en firefox, pero no en IE xD j

Otra cosa... Es verdad esto que acabo de leer? =S
si es así qué maldita pérdida de tiempo! jaja

Practical A: No, because for some reason (security? bug?) IE/Win won't
submit a form containing a file upload field that was chosen by the user
after its browse box was opened from script.
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 10:25.