ファイルを選択してアップロードする際にファイル名がテキストボックスに表示されますがそのまま表示するとまったく地味なデザインになってしまうのでこれをオリジナルデザインにしたいと思いググったところ多数のやり方が見つかりました
一部例
しかしどれもアップロードするファイルを選択するとファイル名だけでなくパスも一緒に表示されてしまうことに気づきました。
パスは表示されないオリジナルのinput[type=file]の作成方法ご存知の方宜しく御願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
inout[type=file]から値を抽出する際に、JavaScriptで「最後のバックスラッシュ、もしくはスラッシュ以降」だけ取り出すようにすれば、ファイル名だけを拾えます。
html
1<input type="file" onchange="uv.style.display='inline-block'; uv.value = this.value.match(/[\/\\]([^\/\\]+)$/)[1];" />
もっとも、いろいろ考えだすとさらに複雑化するので、インラインで書かずにJavaScriptを立てたほうがいいと思います。
投稿2016/01/08 02:09
総合スコア145183
0
自己解決
HTML
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script> 6 <script type="text/javascript"> 7 <!-- 8 $(function () { 9 10 $('#a').css({ 11 'position' : 'absolute', 12 'top' : '-9999px' 13 }).change(function () { 14 var val = $(this).val(); 15 var path = val.replace(/\\/g, '/'); 16 var match = path.lastIndexOf('/'); 17 $('#b').val(match !== -1 ? val.substring(match + 1) : val); 18 }); 19 $('#b').bind('keyup, keydown, keypress', function () { 20 return false; 21 }); 22 $('#b, #c').click(function () { 23 $('#a').trigger('click'); 24 }); 25 26 }); 27 --> 28 </script> 29 </head> 30 <body> 31 <input type="file" id="a" name="aa" accept="*/*" /> 32 <input type="text" id="b" style="width:300px;" /> 33 <button id="c">ファイルを選択する</button> 34 </body> 35</html>
HTMLですぐに確認できるようにしました。
butonにcssで指定してカラフルなボタンにすることもできます。テキストボックスも大きいのでファイル名が略されずに表示されます。
ホームページ作成などにお使いください。
投稿2016/01/08 06:55
総合スコア148
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
http://qiita.com/shimayu/items/605ecac3eeec50dd4f93
fileインプット要素は非表示にしてしまい、代わりのボタンを自前で用意します。
代わりのボタンは好きなデザインにできます。
代わりのボタンをクリックされたときにそのイベント拾って隠されているFileインプット要素を.click()するわけです。
投稿2016/01/08 02:03
総合スコア5568
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/08 06:51