input[type=”file”]の装飾をしています。
input要素は非表示にして、
代わりに、label要素に画像をあてて、
画像をボタンとして見立てています。
その上で、選択したファイル名を表示させる為に、
Javascriptで対応しようと思いました。
条件は、1つのページ内に
複数のinput[type=”file”]があります。
実現したいことは、
input[type=”file”]がクリックされたときに、
隣接している<div>要素にファイル名を表示したいです。
※トリガーとなる要素や、div要素にはとくにこだわりはありません。
どうぞよろしくお願い致します。
余談ですが、
1つのページ内に、1つのinput[type=”file”]は別コードで実現できました。
html
1<div> 2 3<div> 4<label class='camera' for='camera0'> 5<input type="file" id='camera0' name='File'> 6</label> 7<div>ファイルが未選択です</div> 8</div> 9 10<div> 11<label class='camera' for='camera1'> 12<input type="file" id='camera1' name='File'> 13</label> 14<div>ファイルが未選択です</div> 15</div> 16 17</div>
jquery
1$('input[type=file]').change(function() { 2var This = $(this); 3var file = $(this).prop('files')[0]; 4$(this).find('div').text(file.name); 5});
css
1.camera { 2background-image: url("../img/camera.svg"); 3width: 36px; 4height: 36px; 5display: block; 6} 7.camera input { 8display: none; 9}
回答1件
あなたの回答
tips
プレビュー