繁体   English   中英

JS-输入类型文件触发更改时没有更改

[英]JS- Input type file firing change evt when there is no change

嗨,我一直在使用相同的输入来上传文件的脚本,当我按照以下步骤操作时会出现问题:

  1. 选择一个文件[使用ajax在change ev触发后立即上传]
  2. 点击选择文件
  3. 取消而不选择任何文件

问题是当我认为不必要时会提醒文本

码:

<form parameters="values...">
    <input type="file" id="file"/>
</form>

<script>
    $(document).ready(function () {
        $("#file").on("change", function () { 
            let input = this;
            if(input.files && input.files[0]) {
                //upload
            }else {
                alert("Error: Incompatible browser");
            }
        });
    });
</script>

除非没有浏览器兼容性,否则永远不会发出警报,但此“ BUG”会使警报出现

这是一项Chrome 功能 ,当用户单击“取消”时,它实际上会清除之前设置的输入。
IMO, “清除”按钮会更有意义,但是由于文件拾取UI是操作系统之一,所以我想他们无法更改它。

但是无论如何,您需要检查不兼容的浏览器

// in onchange
if(input.files){

甚至更好

// before assigning the change handler
if('FileList' in window){

由于不支持<input type="file">浏览器既不会设置input.files ,也不会具有FileList构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM