Javascript/jQuery将输入值与数组进行比较
我对javascript和jquery比较陌生。现在我有一个txt文件中的单词列表。我将此列表存储在一个数组中,并希望将该数组的内容与一些用户输入进行比较。如果存在匹配项,则应显示该特定单词 我还使用执行一些提前输入功能来预测用户想要搜索哪些单词 在当前阶段,my函数在第一个输入字符上查找匹配项。当使用更多字符时,函数返回未找到匹配项。为什么呢 这是我的HTML:Javascript/jQuery将输入值与数组进行比较,javascript,jquery,arrays,compare,Javascript,Jquery,Arrays,Compare,我对javascript和jquery比较陌生。现在我有一个txt文件中的单词列表。我将此列表存储在一个数组中,并希望将该数组的内容与一些用户输入进行比较。如果存在匹配项,则应显示该特定单词 我还使用执行一些提前输入功能来预测用户想要搜索哪些单词 在当前阶段,my函数在第一个输入字符上查找匹配项。当使用更多字符时,函数返回未找到匹配项。为什么呢 这是我的HTML: <div class="container"> <div class="appwrapper">
<div class="container">
<div class="appwrapper">
<div class="content">
<h3>OpenTaal Woordenboek</h3>
<p>Voer uw zoekopdracht in:<p>
<p><input name="searchinput" id="searchinput" data-provide="typeahead" type="text" placeholder="Zoeken...">
<p class="dict"></p>
</div>
</div>
</div> <!-- /container -->
乌尔登博克酒店
沃尔·乌夫·佐科普德拉赫特在:
下面是jQuery:
<script src="bootstrap/js/jquery.js"></script>
<script src="bootstrap/js/bootstrap-typeahead.js"></script>
<script type="text/javascript">
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('<div class="result">' + myArray + '</div>')
} else {
alert("No match has been found..");
}
};
var数据;
var myArray=[];
var txtFile=new XMLHttpRequest();
open(“GET”,“OpenTaal-210G-basis-gekeurd.txt”,true);
txtFile.onreadystatechange=函数(){
if(txtFile.readyState==4){//确保文档已准备好进行分析。
if(txtFile.status==200){//确保找到该文件。
allText=txtFile.responseText;
data=txtFile.responseText.split(“\n”);//将每行分隔成一个数组
myArray=[数据];
}/“\r\n”
}
}
//控制台。写入(数据);
searchinput.onkeypress=函数(){
//警报(“功能正在工作!”);
var formInput=document.getElementById(“searchinput”).value;
if(myArray==formInput){
警报(“有火柴!”);
$('.dict').append(''+myArray+'')
}否则{
警报(“未找到匹配项…”);
}
};
您需要搜索整个数组,而不仅仅是将其与值进行比较:
if ($.inArray(formInput,myArray)>=0) { // returns -1 if no match
alert("There's a match!");
您需要搜索整个数组,而不仅仅是将其与值进行比较:
if ($.inArray(formInput,myArray)>=0) { // returns -1 if no match
alert("There's a match!");
您没有使用jquery,只使用本机javascript 脚本读取文件后,只需执行以下操作:
$(searchinput).on("keypress", function() {
if ($.inArray(formInput,myArray) > -1) {
alert("There's a match!");
}
});
更新
$(searchinput).on("blur", function() {
if ($.inArray(formInput,myArray) > -1) {
alert("There's a match!");
}
});
您没有使用jquery,只是使用了本地javascript 脚本读取文件后,只需执行以下操作:
$(searchinput).on("keypress", function() {
if ($.inArray(formInput,myArray) > -1) {
alert("There's a match!");
}
});
更新
$(searchinput).on("blur", function() {
if ($.inArray(formInput,myArray) > -1) {
alert("There's a match!");
}
});
循环遍历数组并将输入值与数组元素匹配,如:
for(var i in myArray) {
var arrayElement = myArray[i];
if (arrayElement == formInput) {
//Do your stuff
}
}
循环遍历数组并将输入值与数组元素匹配,如:
for(var i in myArray) {
var arrayElement = myArray[i];
if (arrayElement == formInput) {
//Do your stuff
}
}
您有意将整个
myArray
与单个formInput
值进行比较?我想我必须遍历myArray来搜索匹配项。但我不太知道如何在JavaScription中实现这一点只是一个提示。。。如果您使用jquery,最好用jquery代码(ie$.ajax)Thx替换XMLHttpRequest作为提示。请看一下:)您有意将整个myArray
与单个formInput
值进行比较?我想我必须遍历myArray以搜索匹配项。但我不太知道如何在JavaScription中实现这一点只是一个提示。。。如果您使用jquery,最好用jquery代码(ie$.ajax)Thx替换XMLHttpRequest作为提示。我会看一看:)我确实有一个问题,因为它为我键入的每个字符在我的段落中添加匹配项。你知道我怎么才能避免吗?这就是目的。我必须使任何匹配可见:)也许您不需要按键,只要使用“输入”焦点丢失时达到的“模糊”事件即可。$。如果第一个数组元素匹配,inArray
返回0,其计算结果为false
。如果没有匹配项,则返回-1。您需要测试如果($.inArray(formInput,myArray)>=0)
我确实有一个问题,因为它正在为我键入的每个字符向我的段落添加匹配项。你知道我怎么才能避免吗?这就是目的。我必须使任何匹配可见:)也许您不需要按键,只要使用“输入”焦点丢失时达到的“模糊”事件即可。$。如果第一个数组元素匹配,inArray
返回0,其计算结果为false
。如果没有匹配项,则返回-1。您需要测试是否($.inArray(formInput,myArray)>=0)