【问题标题】:Detect when a user chooses a file using a file input检测用户何时使用文件输入选择文件
【发布时间】:2011-03-14 05:27:11
【问题描述】:

如何检测用户何时使用 html 文件输入选择要上传的文件。这样我就可以自动提交表单了。

【问题讨论】:

    标签: javascript jquery html-input


    【解决方案1】:

    文件上传元素在其内容发生更改时触发 onchange 事件。这是一个非常简洁的例子:

    <input type="file" name="whatever" onchange="alert('Changed!');" />
    

    编辑:哦,如果您想在他们选择某些内容时提交表单(尽管这可能会让您的用户有些困惑):

    <input type="file" name="whatever" onchange="this.form.submit();" />
    

    【讨论】:

    • 刚刚注意到您使用的是 jQuery,在这种情况下,您需要像 Reigel 建议的那样使用 change() 事件。
    【解决方案2】:

    试试

    $('#inputfileID').change(function(){
    alert(0);
    })​
    

    【讨论】:

      【解决方案3】:

      检测文件输入变化的普通 JavaScript 方法:

      var fileInput = document.getElementById('inputfileID')
      fileInput.addEventListener('change', function () {
        // Called when files change. You can for example:
        // - Access the selected files
        var singleFile = fileInput.files[0]
        // - Submit the form
        var formEl = document.getElementById('formID')
        formEl.submit()
      }, false);
      

      顺便提一下:false 属性表示不使用捕获,即false 表示 DOM 树中的相关change 侦听器以自下而上的顺序执行。这是默认值,但您应该始终提供该属性以最大限度地提高兼容性。

      另请参阅a SO answer about change eventMDN docs for addEventListenera SO answer about form submission

      【讨论】:

        猜你喜欢
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        • 2017-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多