2011-08-22 137 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