2013-04-12 50 views
1

我正在使用jquery插件,用div替換窗體的文件輸入,所以當你點擊div文件瀏覽器彈出。當你選擇一個文件時,表單會自動提交併且結果進入一個隱藏的iframe。所有這一切背後的想法是,你可以只是有一個圖像說'點擊上傳',只需點擊一下文件瀏覽器就會出現,當你選擇它在幕後上傳的文件時。jquery插件打破只是因爲我刪除'.css({display:'none'})'

無論如何,我知道當文件提交時,我的php出現了問題,但是因爲結果被加載到隱藏的iframe中,所以我看不到錯誤是什麼!

所以很明顯從iframe中刪除隱藏的樣式,但問題是插件添加了顯示:隱藏在插件的javascript中。它的作用:

var iframe = $(
     '<iframe '+ 
      'id="iframe'+id+'" '+ 
      'name="iframe'+id+'"'+ 
     '></iframe>' 
    ).css({ 
     display: 'none' 
    }); 

但是,如果我刪除:

.css({ 
     display: 'none' 
    }); 

位,那麼整個事情似乎在點擊中斷與「點擊上傳」不再使文件在圖像上瀏覽器了。

該插件的JavaScript不長,但可能太長,在這裏發佈,但你可以看看它在這裏:http://liquidlizard.net/jquery.ocupload.js如果任何人都可以幫助我這將是偉大的!

如何刪除只是該css()函數停止整個工作?是否有另一種方法來查看隱藏的iframe的內容?

編輯 這裏有一個jsfiddle建議在評論。 http://jsfiddle.net/VF6Qb/ 如果你刪除了.css({display:'none'});然後單擊div將不再打開文件瀏覽器對話框

+2

你有什麼錯誤嗎? –

+0

而不是'display:none',使用'visibility:hidden'。 –

+0

將'none'更改爲'block'的結果相同嗎? –

回答

0

當您刪除display:none;時,在某種程度上與文件輸入和點擊的div重疊,因此它不會觸發文件瀏覽器。您可以測試this fiddle哪裏我已經交換了iframe和提交表單的DOM位置,瞧 - 它有效。

但是,如果僅檢查iframe中的錯誤文檔,則不會使iframe可見,但只需在FireBug's net panel中檢查其源代碼(和HTTP標頭)即可。