2011-08-22 110 views
0
<form method="POST" enctype="multipart/form-data" action="http://site.com/img"> 
File: <input type="file" name="file" id="abc" /><br/> 
ID: <input type="text" name="someId" value="123"/> 
<input id="submitFormButton" type="submit" value="Upload" name="Upload"> 
</form> 

<input type="button" id="btnEditAvatar" value="fakeButton"/> 

$("#btnEditAvatar").bind("click", function() { $("#abc").trigger("click"); }); 
$("#abc").change(function() { $("#submitFormButton").trigger("click"); }); 

問題發生在IE只有。 當按下「abc」按鈕選擇文件時,它會工作(在關閉文件對話框後,文件被上傳),但是當我按下「btnEditAvatar」按鈕時,在關閉文件對話框後沒有任何事情發生。提交文件時出現問題

我試過使用「點擊」功能而不是「改變」。我試圖用「setTimeout」函數來調用它,我也嘗試使用「onpropertychange」事件處理程序。

http://jsfiddle.net/streamcode9/hAnbQ/

回答

1

相反,如果試圖點擊提交按鈕,爲什麼不提交表單?

$("#abc").change(function() { $(this).closest('form').submit() }); 
+0

它不起作用。沒有任何錯誤,表單也不受支持。 – Alexander

+0

適用於IE 8的我:http://jsfiddle.net/PDDgk/ –

+0

點擊「fakeButton」按鈕並在關閉後提交表單後是否可以打開文件對話框?我需要那樣的東西。 http://jsfiddle.net/streamcode9/3mcCR/ – Alexander

0

嘗試以下任一:

$("#btnEditAvatar").bind("click", function() { $("#submitFormButton").trigger("click"); }); 
$("#abc").change(function() { $("#submitFormButton").trigger("click"); }); 

此結合它提交。

$("#btnEditAvatar").bind("click", function() { $("#abc").trigger("change"); }); 
$("#abc").change(function() { $("#submitFormButton").trigger("click"); }); 

這種結合它改變觸發提交單擊

+0

它不起作用。 – Alexander

+0

我可以看到頁面嗎?或者您是否可以在錯誤控制檯中看到任何錯誤。另外,如果你的第二行工作,你應該能夠複製它,並將'#abc'更改爲'#btnEditAvatar'並將'更改'更改爲'click' – Ben

+0

不,沒有錯誤。 – Alexander