【问题标题】:Problem with File uplolad in javascriptjavascript中文件上传的问题
【发布时间】:2010-03-19 03:34:22
【问题描述】:

我使用 javascript 上传了多个文件。当用户单击“添加更多”时,javascript 使用 innerHTML 将新对象附加到旧 div。 现在的问题是,如果我选择一个文件,然后单击“添加更多”,则新文件按钮存在,但较旧的选定文件将被删除,并显示两个空白文件按钮。我希望在用户添加新文件按钮时必须选择这个旧文件。

下面是我用过的代码。

function addNew()
{
    var root = document.getElementById('newAds');
    newAd = document.createElement('input');
    newAd.setAttribute('type', 'file');
    newAd.setAttribute('name', 'uploaded[]');
    newAd.setAttribute('id', 'uploaded');
    newAd.setAttribute('value', '');
    newAd.setAttribute('maxlength', '1024');
    root.appendChild(newAd);
    root.innerHTML += '<br />';
}

如果有人可以, 帮助LZ! tnX。

【问题讨论】:

  • 您能否提供一些示例 JavaScript 和 HTML。仅凭猜测问题是不可能解决的。
  • 添加新字段后,您最终会得到多少个字段?你在什么浏览器上试试这个?

标签: javascript file upload appendchild


【解决方案1】:

您是否为新文件字段赋予了新名称?您是覆盖任何现有的 innerHTML 还是只是追加?

编辑

一个想法,也许每次运行函数时,变量 newAd 都会被重用,因此它会重新创建所有以前的输入。

我已经有一段时间没有这样做了。我使用 jQuery,所以它很简单:

 $('#newAds').append('<input type="file" name="uploaded[]" id="uploaded" /><br />');

另一个想法,您在所有输入上都有相同的 id...这可能会导致问题。

【讨论】:

  • function addNew() { var root = document.getElementById('newAds'); newAd = document.createElement('input'); newAd.setAttribute('type', 'file'); newAd.setAttribute('name', 'uploaded[]'); newAd.setAttribute('id', '上传'); newAd.setAttribute('value', ''); newAd.setAttribute('maxlength', '1024'); root.appendChild(newAd); root.innerHTML += '
    '; } 我认为每次我们添加新项目时它都会覆盖。
  • 你能把它贴在你的问题里吗……这里有点难读
  • 我会在具有相同 id 的多个文件输入上使用浏览器怪癖。
猜你喜欢
  • 1970-01-01
  • 2010-10-17
  • 2021-02-12
相关资源
最近更新 更多