【问题标题】:Javascript uploading same fileJavascript上传相同的文件
【发布时间】:2014-02-18 01:20:09
【问题描述】:

在之前选择的filefield 中选择文件时,我在触发onchange 事件时遇到问题。我需要能够在上传文件时触发更改事件。

例如,我希望以下场景起作用:

步骤 1) 用户选择 test1.jpg

步骤 2) 用户再次点击并选择 test2.jpg

步骤 3) 用户再次点击并再次选择 test1.jpg

在最后的情况下,文件字段不再触发onchange 事件。有可能让它触发吗?我在谷歌上搜索并找不到解决方案。我试图用新的输入字段替换输入字段,但这也不起作用。对于最后一个,我是通过以下方式完成的:

$('#picturesfile').replaceWith('<input type="file" name="filedata" id="picturesfile">');

更新

我已经用 jsfiddle 尝试过,它确实触发了 change 事件,原来的问题是 jcroponselect 事件没有被触发,我将关闭这个问题并继续寻找解决该问题的方法。

【问题讨论】:

  • 你能创建一个 Jsfiddle,jsfiddle.net
  • 您可以使用 jQuery 创建一个相同的输入框,并在上传文件时替换原始输入框。这可能会清除浏览器为其设置的所有变量。
  • 我不明白你在问什么。您希望文件字段在 3 次选择后触发?
  • 我已经制作了一个 jsfiddle jsfiddle.net/2ejG4 但我注意到它适用于那个!?

标签: javascript jquery file file-upload


【解决方案1】:

每个HTML字符串jQuery如果少于512个符号,解析并缓存在$.cache对象中。所以你只需要删除输入并像这样创建它:

//create new input
var $newInput = $('<input>', {
    type : 'file',
    name : 'filedata',
    id : 'picturesfile'
});
//remove old and append to parentNode new
$('#picturesfile').remove().parent().append(newInput);

【讨论】:

    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2014-07-14
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    相关资源
    最近更新 更多