2011-11-02 74 views
2

此圖片上傳腳本不適用於谷歌瀏覽器,但在Firefox和Internet Explorer中運行良好。請有人可以幫忙嗎? 圖片上傳時瀏覽器和事件處理問題

$("a#picUpload").bind('click', function() { 
    $(":input[type=file]").click(); 
}); 

其次,選擇一張圖片,單擊打開對話框中的打開按鈕後,我想將圖片上傳到打開的對話框,卸載後自動啓動,但我想不出這個怎麼做。上傳是ajax。任何建議?謝謝。

回答

0

我認爲第一個問題可以通過在'#'之前的'a'之後引入空格來解決。我假設'picUpload'是錨元素的id。在這種情況下,你根本不必使用'a'。只需使用'#picUpload'將click事件綁定到元素即可。我更喜歡第二種方法,只使用#id來獲取該元素的jQuery對象。

$("#picUpload").bind('click', function() { 
    $(":input[type=file]").click(); 
}); 

我還建議你檢查你的窗體是否有與'picUpload'元素具有相同id的任何其他元素。在這種情況下事情可能會出錯。

要在選擇文件後自動開始上傳文件,請使用input:file元素的'change'事件。

$('#fileUpload').change(function() { 
    alert('changed'); 
    //call your ajax function for uploading file 
}); 

對於上面的腳本工作,應該按以下

<form> 
    <a id='picUpload' href='#'>Upload picture</a> 
    <input id='fileUpload' type="file"/> 
</form> 

小提琴這裏給出的形式:http://jsfiddle.net/deepumohanp/vvVWt/

+0

感謝您的時間,第二部分工作得很好,但在公開對話部分不一致,有時它會在輸入[type = file]前用冒號在chrome中工作。 – Chibuzo

+0

我已經在jsfiddle鏈接中使用chrome進行了檢查,兩者都沒有問題。你可以給你的表單元素嗎?我可以問你使用哪個版本的鉻?我會爲你檢查一次。 – WarFox