<html>
<body>
<input type="text" list="anrede" />
<datalist id="anrede"></datalist>
<script type="text/javascript">
var options='';
function readTextFile()
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "file:///D:/search.txt", false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
<!--allText array contains file elements inception force batman superman supergirl-->
var arr=allText.split("\n");
for(var i=0;i<arr.length;i++)
{
options += '<option value="'+arr[i]+'" />'; <!-- trying to add array elements for auto completion -->
}
document.getElementById('anrede').innerHTML = options;
}
}
}
rawFile.send(null);
}
readTextFile();
</script>
</body>
</html>
search.txt 包含: 起始 力量 bat 侠 超人 女超人
在文本框中输入时,自动完成结果中元素末尾显示“null”。如何删除它??
最佳答案
<html>
<body>
<input type="text" list="anrede" />
<datalist id="anrede"></datalist>
<script type="text/javascript">
var options='';
function readTextFile()
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "file:///D:/search.txt", false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
//allText.replace(/[^\x20-\x7E]/gmi, "")
var arr=allText.trim().split("\n");
for(var i=0;i<arr.length;i++)
{
console.log(arr[i]);
options+='<optionvalue="'+arr[i].replace(/[^\x20-\x7E]/gmi, "")+'">';
}
document.getElementById('anrede').innerHTML = options;
}
}
}
rawFile.send(null);
}
readTextFile();
</script>
</body>
</html>
关于javascript - 将文件转换为数组并使用数据列表和选项标签添加数组元素以用于自动完成文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270892/