web-dev-qa-db-ja.com

クリックしてファイルアップロードダイアログを開く

他のボタンをクリックしてファイルアップロードダイアログを開く必要があります。つまり、ファイルアップロードコントロールを非表示にして(可視性:非表示)、他のボタンをクリックすると、ダイアログを開きます。以下は私が持っているコードです:

<input type="file" style="visibility: hidden;" />

以下はjavascriptです。

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

Firefox 4およびIE8では正常に動作していますが、chrome12では動作していません。つまり、ダイアログが開かれていません。理由は何ですか?

23
Niraj Choubey

本日、質問で与えられた簡単なコードと状況が変更されました:

  • IE9:動作します
  • Chrome23:動作
  • Firefox15:動作

キャッチは1つだけです-IE .click()はブロッキング操作ですが、他のブラウザーではそうではありません。

8
Knaģis

この例では、ファイル入力にidがありませんでしたが、#inputで参照しようとしています。これは私のために働く:

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

Input [file]をカスタムコントロールのすぐ上に配置する必要があります。そして、そのonclickにバインドします。

また、この方法でのみフォントサイズを大きくできるため、フォントサイズを大きくします。

0
gaRex