我正在尝试使用' multiple'已启用选择多个文本文件,然后将其值(名称)加载到单选按钮。然后选择单选按钮并点击" GO"它将显示文本文件的内容。
基本上选择了几个文本文件,当选择单选按钮并按下GO时,它会在屏幕上显示内容。我很困难这就是我所拥有的。请原谅我,因为我猜我离开了,但我是初学者。
另外,有没有办法使用LOCAL文件位置(如C:\ myfile.txt)而不必使用input = file命令进行选择?我想尝试两者。这不是在线使用的,本地文件实际上是加载html的机器上的本地文件,但我理解这部分可能是不可能的。
<input type="file" name="file" id="file" multiple onchange="updateList();" />
<br/>Selected files:
<div id="fileDisplayArea"></div>
<div id="fileList"></div>
<button id="button" onclick="Go();">GO</button>
&#13;
params = {'zip': args.zip + ',us', 'APPID': args.api}
&#13;
答案 0 :(得分:1)
name
属性,以便一次只选择一个。
您的主要问题是,在您的Go
功能中,您使用无线电输入作为fileInput
变量,并且您在那些无线电输入上设置了更改事件单击按钮调用Go
功能。
据我所知,由于安全性,您无法使用本地路径。想象一下,如果任何JavaScript只是从您的计算机中拾取文件而没有明确选择一个。
document.getElementById("file").addEventListener("change", function(e) {
// this refers to the input. could also use e.target;
var input = this;
var output = document.getElementById("fileList");
// just using the index for the value of each radio button
for (var i = 0; i < input.files.length; ++i) {
output.innerHTML +=
'<label><input type="radio" value="' + i + '" class="place" name="files">' + input.files.item(i).name +
"</label><br/>";
}
});
document.getElementById("button").addEventListener("click", function(e) {
var textType = /text.*/;
var fileInput = document.getElementById("file");
var fileDisplayArea = document.getElementById("fileDisplayArea");
// here we're finding the checked radio button and getting its value
// to use below as the index in our file list
var selectedRadioIndex = parseInt(
document.querySelector('input[name="files"]:checked').value
);
if (fileInput.files[selectedRadioIndex].type.match(textType)) {
var reader = new FileReader();
reader.onload = function(e) {
fileDisplayArea.innerText = reader.result;
};
reader.readAsText(fileInput.files[selectedRadioIndex]);
} else {
fileDisplayArea.innerText =
fileInput.files[selectedRadioIndex].name + " is not supported!";
}
});
<input type="file" name="file" id="file" multiple/>
<br/>Selected files:
<div id="fileDisplayArea"></div><div id="fileList"></div>
<button id="button">GO</button>