【发布时间】:2012-06-14 23:52:27
【问题描述】:
使用浏览器 firefox 和 chrome
我有一个输入文件元素。
<input type='file' id='tempFileInput' multiple></input>
假设我为上面的文件输入框('tempFileInput')选择了三个文件;
OnChange 我想为每个文件将三个文件分成三个新的文件输入框。即
<input type='file' id='inputFile_0'></input>
<input type='file' id='inputFile_1'></input>
<input type='file' id='inputFile_2'></input>
我正在努力实现这一目标。有什么帮助吗?
//我写了一个小的 JavaScript sn-p 来实现我想要实现的目标。
var index = 0;
function multipleInputBoxes(tempFileInput){
var divForm = document.getElementById('divForm');
var numOfFiles = tempFileInput.files.length;
for(var i=0; i<numOfFiles; i++){
var newUploader = document.createElement('input');
newUploader.type='file';
newUploader.id = 'inputFile_' + index;
var file = tempFileInput.files[i];
***newUploader.files[0] = file;***
//above line does not work, as by default due to security reasons input type='file' is read only, and non editable.
divForm.appendChild(newUploader);
index++;
}
}
【问题讨论】:
-
你想实现多选表单提交吗?否则我没有得到你的问题。
-
无法设置文件输入的值。我想也许有一种方法可以克隆输入并删除除一个项目之外的所有项目,但是,you cannot modify the FileList of a file input,要么 - 只需完全清除它。因此,您的问题没有解决方案。
-
@subirkumarsao 不。当用户从 fileInputBox 中选择三个文件时。我想将每个文件与该 fileInputBox 分开,并在不同的表单上创建三个新的文件输入框。因为用户在每个表单上都以不同的方式对待每个文件。
-
@OverZealous - 我绝对同意,这就是我在这个论坛上发布这个问题的原因。只是想指出我可以从 filInputBox 'var file = tempFileInput.files[i];' 访问每个文件,所以有没有办法可以将这个 'file' 变量分配给任何 html 元素并在表单获取时发布它提交。谢谢
标签: javascript file input