設置的onchange只能執行一次的解決方案" type="hidden"/>

設置的onchange只能執行一次的解決方案


最近有需要要做一個曬圖的功能,和淘寶曬圖差不多,最多可以選擇5個圖片,要用ajax方式的。考慮了一下,如果用swfupload(flash)上傳,要弄驗證的問題,超級麻煩;於是准備用ajaxFileUpload的jQuery插件。


於是問題就來了,file的onchange事件只能在刷新頁面后,執行一次,第二次就不執行了。網上很少有對ajaxFileUpload綁定file進行ajax上傳第二次失效的問題進行解釋,后來找到說不能用$('id').bind('change',function(){}) 來執行,但可以用live取代bind。取得不錯的效果。
在網上也有人遇到這樣的情況,記下來:

今天在用ajaxfileupload時,遇到一個要刷新一次頁面才能再次上傳,用live()方法來綁定<input type="file">的change事件就能夠解決?直接$("xxx").change();只能調用一次,據聞是IE瀏覽器的安全性。后來終於找到解決方案了。IE瀏覽器下<input type="file">選擇完成自動提交的問題,在每次處理完成后把<input type="file" />替換成原來的代碼,然后隨便加個不同的屬性。如本例中添加了title。

var count = -1;
    $("#upload").live("change", function () {
        count++;
    $.ajaxFileUpload(config);
    $("#upload").replaceWith("<input type='file' id='upload' name='upload' style='position:relative; top:0px; left:-240px; width:346px; height:46px; opacity:0; filter: Alpha(Opacity=0); cursor:pointer; title=" + count + "' />");
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM