选择文件后如何输入重复文件(.change())

时间:2013-11-08 22:18:51

标签: jquery html forms

尝试为文件上传创建一个输入字段..我想当用户选择一个文件时,文件输入字段会被一个新的空文件复制

我使用的是这样的东西

<form>
<input type='file' class='addImage' />
</form>


$(function(){ 
        $('.addImage').change(function(){
            $("<input type='file' class='addImage' />").appendTo('form');
        });
    });

在此处查看http://jsfiddle.net/R5QSy/1/

它工作并只显示另一个单个文件输入重复..如果我从新生成的输入中选择一个文件,不会再发生重复!如何使复制过程无限制?感谢

1 个答案:

答案 0 :(得分:2)

在您的函数附加change处理程序时,添加的第二个文件输入尚不存在,因此它不响应change事件。您可以通过使用委派的事件处理程序来解决此问题:

$(document).on("change", ".addImage", function(){ ... });

请注意,这可能不会令人满意,因为每次更改任何元素上的选定文件时,都会添加新的文件输入(即使表单中已有未使用的输入控件)。您可以通过在对其调用处理程序时向任何元素添加类并在添加新元素之前检查它是否已具有该类来防止这种情况发生。