Javascript / jQuery将输入值与数组进行比较

我对javascript和jquery比较新。 现在我在txt文件中有一个单词列表。 我将此列表存储在一个数组中,我想将该数组的内容与一些用户输入进行比较。 如果匹配,则应显示该特定单词。

我还使用Jasny Bootstrap执行一些预先输入的函数来预测用户想要搜索的单词。

在当前阶段,我的函数在第一个输入字符上找到匹配项。 当使用更多字符时,该函数返回未找到匹配项。 这是为什么?

这是我的HTML:

OpenTaal Woordenboek

Voer uw zoekopdracht in:

这是jQuery:

    var data; var myArray = []; var txtFile = new XMLHttpRequest(); txtFile.open("GET", "OpenTaal-210G-basis-gekeurd.txt", true); txtFile.onreadystatechange = function() { if (txtFile.readyState === 4) { // Makes sure the document is ready to parse. if (txtFile.status === 200) { // Makes sure it's found the file. allText = txtFile.responseText; data = txtFile.responseText.split("\n"); // Will separate each line into an array myArray = [data]; } //"\r\n" } } //console.write(data); searchinput.onkeypress = function() { //alert("The function is working!"); var formInput = document.getElementById("searchinput").value; if (myArray == formInput) { alert("There's a match!"); $('.dict').append('
' + myArray + '
') } else { alert("No match has been found.."); } };

你没有使用jquery,只是原生的javascript。

脚本读取文件后,只需执行以下操作:

 $(searchinput).on("keypress", function() { if ($.inArray(formInput,myArray) > -1) { alert("There's a match!"); } }); 

UPDATE

 $(searchinput).on("blur", function() { if ($.inArray(formInput,myArray) > -1) { alert("There's a match!"); } }); 

您需要搜索整个数组,而不仅仅是将其与值进行比较:

 if ($.inArray(formInput,myArray)>=0) { // returns -1 if no match alert("There's a match!"); 

http://api.jquery.com/jQuery.inArray/

循环遍历数组并将输入值与数组元素匹配,如:

  for(var i in myArray) { var arrayElement = myArray[i]; if (arrayElement == formInput) { //Do your stuff } }