type=”file”を独自デザインにしてもIE9で選択ファイル名が表示されるJS
2016/8/17
こんにちは。creativeチームのBDS(ビール大好きS)です。
先日とある案件で困ったことがあり、開発チームに助けてもらって実装したJSをご紹介します。
何に困ったかというと、、、
「ファイル選択ボタン(type=”file”で実装)を独自のデザインにしたい」
というお客様からのご要望。
普通type=”file”ってデフォルトのまま使用するとこんな感じの見た目ですね。
それをこんな感じにしたい
ボタンのデザインを変更するのは大した作業ではないのですが、やっかいなのはその後でした。
type=”file”を独自デザインにするとまずそのままだと選択したファイル名が自動的に表示されない問題が起こりました。
私のどうにかできる範囲でないと判断し、開発チームにお願いしました。
パパッとJSを書いてファイル名も表示されるようにしてくれたのですが、、、
IE9だけ表示されず。。。
そして泣きのもう一回。
再度調整してもらい、やっとこさIE9でもファイル名が表示されるようになりました。
上がってきたソースがこれ
// ファイル選択時に、input textにファイル名を表示 $(document).on("change", "{input fileのセレクタ}", function () { var fileName = null; if(window.File && window.FileReader) { if ( this.files ) { fileName = this.files[0].name; } } else if ($(this).val()) { fileName = $(this).val().substr($(this).val().lastIndexOf("\\") + 1); } $("{input textのセレクタ}").val( fileName ); } );
無事にファイル名表示されました.
開発チームに感謝。
ちなみにHTMLはこんな感じです。
<div> <input type="text" class="●●●" readonly/> <label class="×××"> ファイル選択<input type="file" value="ファイル選択"/></label> </div>
もし同じように苦しんでる方がいたら試してみてください。
カテゴリ:ブラヴィッシモのいろいろな記事
RELATED ARTICLES
- 2021/01/05本番環境でアラートを出してくれるChromeプラグイン 「ENV Alert」
- 2016/10/31「SiteGuard WP Plugin」でWordPressのセキュリティ対策を!
- 2016/09/21たくさんのファイルに同じ処理をしたい時のExcelマクロ
- 2016/09/14Instagramのハッシュタグの取得が制限されました
- 2016/09/09Selenium BuilderでCrossBrowserTesting.comのスナップショットを撮る方法
新着記事
人気記事
151 views | posted on 2016/08/31 Androidアプリの .apk ファイルを解凍してみました
84 views | posted on 2016/09/21 たくさんのファイルに同じ処理をしたい時のExcelマクロ
13 views | posted on 2016/08/17 type="file"を独自デザインにしてもIE9で選択ファイル名が表示されるJS