正如标题所说,我想,打开“选择文件”对话框时,一定input通过(使用键盘导航)通过表单字段Tab键获得焦点。默认情况下,“选择文件”窗口仅打开被点击时领域

我把在网页上JS斌针对此问题: http://jsbin.com/areba/edit

目前,这个页面包括以下代码的:

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

可以看到,有一个文本输入和文件输入。这个想法是,当文本输入端接收焦点时,文件输入获得“点击”或“选择文件”窗口中打开的任何和

.css('background', 'lime')声明似乎做工精细;然而,在文件输入调用.trigger('click')似乎做什么都没有。

(我知道这可能会导致访问性问题,所以,请让我们不要讨论,谢谢。)

有帮助吗?

解决方案

这将在IE和Safari(我认为)的工作,而不是在Opera或Firefox,因为他们还没有实现的点击()事件进行文件上传元素 - 编辑:尚未

其他提示

我怀疑你将能够做到激活出于安全原因的对话框。一个真正的click事件有发生,取决于浏览器。

我知道的Flash / Flex的这个要求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top