2

这是我的代码:

$('#button').click(function () {
    $('#file').click();
});
$('#file').change(function (){
    $('#form').submit();
});


 <form style="display:none;" id="form" method="post" target="upload_target" enctype="multipart/form-data" action="upload">

 <input id="file" name="file" id="file" type="file" /><br />        
  <input type="submit" name="action" value="Upload Image" /><br />      
  <iframe id="upload_target" name="upload_target" src="" style="width:100;height:100;border:00;"></iframe>   

</form>

  <span id="button" class="button def">upload</span>

问题出在哪里?
这适用于 Firefox、Chrome 但不适用于 IE

4

3 回答 3

3

检查您的选择器,像这样从第二部分的选择器中删除该 #。

$('input[type=file]').change(function(){
    $('#form').submit();
});

这应该可以完美地工作。

于 2013-01-04T12:16:47.463 回答
1

$('input[type=file]')input仅当您想按 tagName 选择时才应使用,#如果您想按 ID 选择元素,则应在选择器之前使用

编辑:

如果你检查了控制台,你会看到你在 IE 上出现了这个错误,SCRIPT5: Access is denied. 这是因为 IE 的安全规则

您无法在具有不同域名的页面中访问 iframe。

经过一番搜索,我发现了一些可能对您有所帮助的东西,您必须在父页面及其 iframe 上将 document.domain 设置为相同的内容,以便它们相互交谈。

document.domain = "yourdomain.com"

来源:http ://www.tomhoppe.com/index.php/2008/03/cross-sub-domain-javascript-ajax-iframe-etc/

祝你好运。

于 2013-01-04T12:18:25.063 回答
0

Internet Explorer 不允许上传通过 Javascript 触发的文件。您正在做什么,即通过按钮触发文件浏览器的单击功能,然后尝试发送所选的任何文件在 IE 中不起作用。您将收到拒绝访问错误。

这不是代码中的错误,它只是 IE 工作方式的限制。

于 2013-05-27T16:21:49.620 回答