input
タイトルにあるように、フォームフィールドをタブで移動して(キーボードナビゲーションを使用して)特定のフォーカスが得られたときに、[ファイルの選択]ダイアログを開きたいと思います。デフォルトでは、「ファイルの選択」ウィンドウは、フィールドがクリックされたときにのみ開きます。
この問題についてJSBinにページを掲載しました: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')
ただし、ファイル入力を呼び出しても何も起こらないようです。
(これによりアクセシビリティの問題が発生する可能性があることを認識しているので、それについては説明しないでください。ありがとうございます。)