当以编程方式单击文件输入时,不会触发IE更改事件

时间:2014-12-04 10:18:50

标签: jquery file internet-explorer input onchange

我在输入类型='文件'上以编程方式单击,并在输入值更改时提交文件。它适用于FF / Chrome(最新版本),但不适用于IE,

<input id='fileupload' type='file' visibility='hidden'>
<button id='TriggerUpload'>
<script>
    $("#fileupload").change(function() { alert('Value Changed'); } );
    $("#TriggerUpload").click( function() { $("#fileupload").click(); } );
<script>

单击输入时IE中未触发更改事件浏览按钮是使用其他按钮单击事件以编程方式完成的,但直接单击输入浏览按钮(如果可见)时效果很好!

我尝试使用onpropertychange,如http://jsfiddle.net/7wR2L/14/中所述,但它无法解决IE11中的问题!

非常感谢任何建议和/或解决方案。

2 个答案:

答案 0 :(得分:0)

确实是一个非常令人沮丧的问题 - 我认为它是IE中的一个错误。尝试这个工作,基本上强制关注你的按钮:

$("#TriggerUpload").click( function() { 
   $(this).focus();
   $("#fileupload").click(); 
} );

答案 1 :(得分:0)

您是否触发了正确的事件?您已订阅change,但正在触发click。代替:

$("#fileupload").change(function() { alert('Value Changed'); } );
$("#TriggerUpload").click( function() { $("#fileupload").trigger('change'); } );

http://jsfiddle.net/drzaus/7wR2L/1350/(我实际上无法在IE中测试这个...)