input
正如标题所说,我希望通过在表单字段中切换(使用键盘导航)在某个获得焦点时打开“选择文件”对话框。默认情况下,“选择文件”窗口仅在单击该字段时打开。
我为这个问题在 JS Bin 上建立了一个页面: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')
文件输入似乎什么都不做。
(我意识到这可能会导致可访问性问题,所以请不要讨论这个问题。谢谢。)