abrir el cuadro de diálogo de carga de archivo al hacer clic

Tengo que abrir el cuadro de diálogo de carga de archivos haciendo clic en otro botón, es decir, estoy ocultando el control de carga de archivos (visibilidad: oculto) y al hacer clic en algún otro botón quiero abrir ese cuadro de diálogo. A continuación está el código que estoy teniendo:

 

Debajo está el javascript:

 $('#button').click(function() { $('input[type=file]').click(); }); 

Está funcionando bien en Firefox 4 e IE8 pero en chrome12 no funciona, es decir, el diálogo no se está abriendo. ¿Alguna idea de por qué?

Probado hoy el código simple dado en la pregunta y la situación ha cambiado:

  • IE9: funciona
  • Chrome23: funciona
  • Firefox15: funciona

Solo hay un IE catch – on .click () es una operación de locking mientras que en otros navegadores no lo es.

En su ejemplo, su entrada de archivo no tenía una identificación, pero está intentando hacer referencia a ella con #input. Esto funciona para mí:

 $('#button').click(function() { $('input[type=file]').click(); }); 

Debería colocar la entrada [archivo] justo encima de su control personalizado. Y luego vincularlo a él en clic.

También haga un tamaño de fuente más grande, ya que solo así puede boost su altura.