我需要一个 HTML5 文档,该文档在页面加载时读取 CSV 文件,该文件将托管在本地/我的网站/我们的服务器上。 CSV 文件将包含 3 个列表:部门、类别、产品类型。页面需要有 3 个搜索框(每个搜索框一个)来搜索/过滤部门/类别/产品类型的某些关键字。
我对 Web 开发和 HTML5/jQuery 完全陌生,我进行了以下工作,您必须手动选择文件,然后单击上传以显示内容。我正在考虑更换
reader.readAsText($("#fileUpload")[0].files[0]);
至
reader.readAsText(string filename);
原因是 - 我已经知道文件名,因此可以指定它,但我知道你不能将字符串传递给
reader.readAsText
无论如何,我的代码如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CSV Downloader</title>
</head>
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("#upload").bind("click", function () {
var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv)$/;
var localCSVfile = "C:\Users\User1\Desktop\Temp\Test for HTML5.csv";
var test1 = false;
if (regex.test(localCSVfile.toLowerCase())) {
test1 = true;
if (typeof (FileReader) != "undefined") {
var reader = new FileReader();
reader.onload = function (e) {
var table = $("<table />");
var rows = e.target.result.split("\n");
for (var i = 0; i < rows.length; i++) {
var row = $("<tr />");
var cells = rows[i].split(",");
for (var j = 0; j < cells.length; j++) {
var cell = $("<td />");
cell.html(cells[j]);
row.append(cell);
}
table.append(row);
}
$("#dvCSV").html('');
$("#dvCSV").append(table);
}
reader.readAsText($("#fileUpload")[0].files[0]);
} else {
alert("This browser does not support HTML5.");
}
} else {
alert("Please upload a valid CSV file.");
}
});
});
</script>
<input type="file" id="fileUpload" />
<input type="button" id="upload" value="Upload" />
<hr />
Department:<br>
<input type="text" name="department">
<br>
Categories:<br>
<input type="text" name="categories">
<br>
Product Types:<br>
<input type="text" name="producttypes">
<br>
<div id="dvCSV">
</div>
</body>
</html>
我不想要点击/上传按钮/功能,因为我希望在页面加载时自动加载 CSV 文件,而且 3 个搜索框实际上应该过滤 CSV 文件中的相应列表并显示它(当前搜索框不执行任何操作)。
最佳答案
尝试将其更改为 $("#upload").bind("click",function ()
为 $(document).ready(function()
关于javascript - 如何加载 CSV 文件以在 HTML5 页面上显示并使用搜索框对其进行过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796309/