【问题标题】:IE change event does not trigger when click programmatically on file input以编程方式单击文件输入时不会触发 IE 更改事件
【发布时间】:2014-12-04 10:18:50
【问题描述】:

我正在以编程方式单击输入 type='file' 并在输入值更改时提交文件。它在 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 中触发更改事件,但在直接单击输入浏览按钮(如果可见)时效果很好!

我尝试按照http://jsfiddle.net/7wR2L/14/ 中的说明使用 onpropertychange,但它不能解决 IE11 中的问题!

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

【问题讨论】:

    标签: jquery file internet-explorer input onchange


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-21
        • 2018-06-20
        • 2020-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多