下面的脚本工作正常。但问题是它在警告框中显示文件名。但我想要文件名作为输入值..我尝试了很多次,但我没有得到预期的outfile。示例如果我选择了第一个文件,我希望输入值在id =" 0"就像那样,如果它是第二个我想要id =" 2"
的价值<input type="file" class="input"/>
<input type="file" class="input"/>
<input type="file" class="input"/>
<input type="file" class="input"/>
<input type="file" class="input"/>
<input id="0">
<input id="1">
<input id="2">
<input id="3">
<input id="4">
<script>
var inputArray = document.getElementsByClassName('input');
for(var i = 0; i < inputArray.length; i++){
inputArray[i].addEventListener('change',prepareUpload,false);
};
function prepareUpload(event)
{
var files = event.target.files;
var fileName = files[0].name;
document.getElementById("0").value = fileName;
alert(fileName);
}
</script>
答案 0 :(得分:-1)
您的ID无效。 看到这个问题:
What are valid values for the id attribute in HTML?
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。
以下是我认为您尝试做的一个小演示:
<input type="file" class="input" name="input1" />
<input type="file" class="input" name="input2" />
<input id="input1">
<input id="input2">
var inputArray = document.getElementsByClassName('input');
for(var i = 0; i < inputArray.length; i++){
inputArray[i].addEventListener('change',prepareUpload,false);
};
function prepareUpload(event)
{
var files = event.target.files;
var fileName = files[0].name;
document.getElementById(event.target.getAttribute('name')).value = fileName;
alert(fileName);
}
根据用例,您可能希望使用 data 属性而不是名称。