2009-07-15 14 views
5

jQueryでclickイベントをバインドした<img ... />タグがあります。それがクリックされると、ファイルシステムのブラウズポップアップを開くためにファイルアップロードのボタンのクリックをエミュレートしたいと思います。私は、クリック機能の中にこれらの事を試してみましたが、何の成功を持っていたしました:jQueryのファイルアップロードのエミュレート

... 
$(".hiddenUploadBtn").click(); 
... 

... 
$(".hiddenUploadBtn").select(); 
... 

... 
$(".hiddenUploadBtn").submit(); 
... 
+0

Adam McCormickの新しい回答に同意してください。これは明らかです。私は私のものを削除したいのですが、受け入れられた答えではありません。 – RichieHindle

+0

受け入れられる回答が更新されました。コメントありがとう。 –

答えて

-1

は仕様は、動作するようになっていると言い、それがChromeで、ありません。しかし、Firefoxや他の一般的なブラウザはルールに従わないので、あなたはSOLです。

+2

あなたが参照している仕様へのリンクを投稿してください。また、「仕様」とブラウザの実装には違いがあります。たとえば、すべてのブラウザは仕様どおりにCSSをレンダリングしますか?明らかにそうではありません。スペックが機能すると言うだけで、ブラウザが動作させるという意味ではありません。 –

2

これは私のために使用アップロードボタンの

<input name="picture" type="file" onchange="alert(this.value)" class="file" size=20/> 

画像がこの

<style> 
div.fileinputs {position:relative; display:inline;} 
div.fakefile {position:absolute; top:0px; left:0px; z-index:1;} 
input.file {position:relative; text-align:right; -moz-opacity:0; filter:alpha(opacity: 0); opacity: 0; z-index:2;} 
<style> 

<div class="fileinputs"> 
    <input name="picture" type="file" onchange="alert(this.value)" class="file" size=1/> 
    <div class="fakefile"> 
    <img src="images/browse.gif" align="middle" alt="browse" title="browse"/> 
    </div> 
</div> 

を試みるように入力フィールドが隠されている、およびuは画像をクリックしたときに動作します - 選択ダイアログが表示されますが、エミュレートしますjs imposibleからのこのダイアログ、うん。ただ、ラベルにIMGをラップし、属性に設定 http://upload-at-click.narod.ru/demo2.html

5

だけではJavaScriptを使用して、このいずれかを試してみてくださいファイル入力に転送します。あらゆる種類のコンテンツに対応し、仕様に組み込まれています。その時点でファイル入力を非表示にすることもできます。

<input type="file" id="fileUpload"><br> 
<label for="fileUpload"> 
    <img src="https://www.google.com/images/srpr/logo11w.png" /> 
</label> 
+0

これはPHPベースで、一部の人々はPHPソリューションを探していません。 – Chexpir

+0

私はこの 'js'ファイルを使用しています。それはうまくいきます.. chrome&IEでは、完全なパス名を得ることができますが、mozillaでは完全なパスを得ることはできません。私たちはファイル名だけを得ることができます....だから、どうすればmozillaでフルパスを得ることができますか? –

関連する問題