Html 文件输入上的event.preventDefault()不';好像不行

Html 文件输入上的event.preventDefault()不';好像不行,html,input,preventdefault,Html,Input,Preventdefault,HTML <input id="file-upload" name="files" type="file" multiple=""> 当我选择一个文件时,它的名称显示在输入旁边,并且它被添加到输入的后面,那么什么是event.preventDefault()preventing?:/ 瞄准(至少最终) 允许用户选择文件,但停止默认行为,抓取文件并手动将其附加,同时(这是一个很好的选择)列出通过动态创建一些HTML选择上载的文件。输入的更改事件实际上没有默认操作,因此在事件上调用p

HTML

<input id="file-upload" name="files" type="file" multiple="">
当我选择一个文件时,它的名称显示在输入旁边,并且它被添加到输入的后面,那么什么是
event.preventDefault()
preventing?:/

瞄准(至少最终)


允许用户选择文件,但停止默认行为,抓取文件并手动将其附加,同时(这是一个很好的选择)列出通过动态创建一些HTML选择上载的文件。

输入的更改事件实际上没有默认操作,因此在事件上调用preventDefault()将无效

编辑:

无法修改文件列表对象,因此如何修改文件集合?

答案很简单

  • 声明并初始化自定义文件列表数组

    var selectedFiles=[]

  • onChange事件中,将所选文件附加到该变量:

    array.forEach(e.target.files, (file) => {
            selectedFiles.push(file);
       });
    
  • 将变量追加到
    FormData
    并提交

    let formData = new FormData(document.querySelector('#request-for-change-form'));
    
    // Creates a new request
    var request = new XMLHttpRequest();
    request.open("POST", "{your action here}");
    
    // Append the files to the formdata
    for (var i = 0; i < selectedFiles.length; i++) {
      formData.append("files[]", selectedFiles[i]);
    }
    
    // Submit the form
    request.send(formData);
    
    let formData=new formData(document.querySelector(“#变更请求表”);
    //创建新请求
    var request=new XMLHttpRequest();
    打开(“POST”,“{您的操作在这里}”);
    //将文件附加到formdata
    对于(var i=0;i

  • 输入的更改事件实际上没有默认操作,因此对该事件调用preventDefault()将没有任何效果

    编辑:

    无法修改文件列表对象,因此如何修改文件集合?

    答案很简单

  • 声明并初始化自定义文件列表数组

    var selectedFiles=[]

  • onChange事件中,将所选文件附加到该变量:

    array.forEach(e.target.files, (file) => {
            selectedFiles.push(file);
       });
    
  • 将变量追加到
    FormData
    并提交

    let formData = new FormData(document.querySelector('#request-for-change-form'));
    
    // Creates a new request
    var request = new XMLHttpRequest();
    request.open("POST", "{your action here}");
    
    // Append the files to the formdata
    for (var i = 0; i < selectedFiles.length; i++) {
      formData.append("files[]", selectedFiles[i]);
    }
    
    // Submit the form
    request.send(formData);
    
    let formData=new formData(document.querySelector(“#变更请求表”);
    //创建新请求
    var request=new XMLHttpRequest();
    打开(“POST”,“{您的操作在这里}”);
    //将文件附加到formdata
    对于(var i=0;i

  • 它似乎不起作用,在后端,文件没有通过:。代码是:谢谢分享你的代码。请参阅我的最后一步,了解如何正确使用FormData。它似乎不起作用,在后端,文件无法通过:。代码是:谢谢分享你的代码。请参阅我的最后一步,了解如何正确使用FormData。