ハックを使用して、すべてのブラウザーでファイル入力が一貫して表示されるようにしています。私はこのテクニックを使用しています。基本的に、ファイル アップロード入力の不透明度を 0 に設定し、スタイル設定された別の入力の上に絶対に配置します (クロス ブラウザーの一貫性のため)。ユーザーが [ファイルのアップロード] 領域をクリックすると、実際にはその下の入力をクリックしていますが、アップロード領域の不透明度がゼロであるため、アップロード ダイアログ ボックスが引き続き表示されます。このハックは非常にうまく機能します (詳細はリンクを参照) が、主な問題が 1 つあります。不透明度が 0 に設定されているため、参照ボタンが機能したことをユーザーに知らせるために必要なファイル パスが表示されません。
次のことを行う jquery ソリューションを探しています。ユーザーがファイルを参照すると、jquery はファイル名/パスを変数に格納し、その変数を別の入力 (前の入力) の値として表示します。つまり、ユーザーがファイルを選択すると、ファイル名が他の入力に値として表示されます。
ここに私のHTML / CSSがあります:
<div id="upload">
<input type="text" id="fakeUpload" value="Choose File">
<span class="file-upload">
<input type="file" name="file-upload" class="wpcf7-file" size="1" value="1">
</span>
</div>
#upload{position:relative; float:left; width:100%; cursor:pointer;}
#upload input#fakeUpload{position:absolute; top:0; left:0; display:block; font-size:15px; color:black; background:#f1f1f1; padding:7px 5%; width:90%!important; cursor:pointer; z-index:1;}
#career input[type="file"] {opacity: 0; position:absolute; top:0; left:0; z-index:2; text-align: right;}