Mostrando de diálogo ‘Seleccionar archivo’ del navegador cuando se enfoca entrada [type = file] a través de la navegación por teclado

StackOverflow https://stackoverflow.com/questions/1734478

Pregunta

Como dice el título, quiero que el cuadro de diálogo ‘Seleccionar archivo’ para abrir cuando un cierto input obtiene el foco de tabulación a través de los campos de formulario (usando la navegación por teclado). Por defecto, la ventana ‘seleccione el archivo’ sólo se abre cuando se hace clic en el campo.

pongo una página de JS Bin para este problema: http://jsbin.com/areba/edit

En la actualidad, esta página consiste en el siguiente código:

<!doctype html> 
<html> 
 <head> 
  <title>Sandbox</title> 
  <meta charset="utf-8"> 
 </head> 
 <body> 
  <form> 
   <input type="text"> 
   <input type="file">
  </form>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  <script>
   $(function() {
    $('input[type=text]').focus(function() {
     $(this).next('input[type=file]').css('background', 'lime').trigger('click');
    });
   });
  </script>
 </body> 
</html>

Como se puede ver, hay una entrada de texto y un archivo de entrada. La idea es que cuando la entrada de texto se selecciona, el archivo de entrada se hizo ‘clic’ o lo que sea y se abre la ventana ‘Seleccionar archivo’.

La declaración .css('background', 'lime') parece funcionar bien; Sin embargo, invocando .trigger('click') en el archivo de entrada parece no hacer nada en absoluto.

(me di cuenta que esto podría causar un problema de accesibilidad, así que por favor, no vamos a hablar de eso. Gracias.)

¿Fue útil?

Solución

Esto funciona en IE y Safari (creo), pero no en Opera o Firefox, ya que no han implementado el evento Click () para los elementos de carga de archivo - edición:. Aún no

Otros consejos

dudo que sería capaz de hacer activar el diálogo por razones de seguridad. Un acontecimiento real clic tiene que ocurrir, dependiendo del navegador.

Yo sé Flash / Flex tiene este requisito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top