我一直在试图做一个学校项目的一个非常简单的搜索引擎,但我不知道如何比较我收到的用户输入(从输入文本框中的字符串)到我在数组中的数据(带有一堆名称的NodeList对象)。我有一个HTML页面,其中包含一个输入表单和一堆电影标题(格式),我想比较用户在输入中输入的内容形式到页面上的电影标题。如果用户输入的电影名称与我想要的那部电影相匹配,并且输入的电影与任何电影都不匹配,那么我只需要一个警告框来弹出说明输入与任何电影都不匹配的情况。JavaScript:如何将用户输入与数组进行比较?
我一直在试图做这样的:
var All_Titles = document.getElementsByTagName("h3");
var User_Input = document.forms["search_form"];
function InputValidation() {
var x = document.forms["search_form"]["input_box"].value;
if (x == "" || x == null) {
alert("You haven't entered anything");
} else {
Search();
}
}
function Search() {
if (User_Input == All_Titles) {
document.writeln("It worked!");
} else {
alert("No matched movies");
}
}
正如你所看到的,我第一次捕获一个名为“USER_INPUT”变种的用户输入,和我做的电影片名一样。
然后,我检查用户是否确实有任何文字进入搜索表单;如果他们没有,他们会收到一条错误消息,如果他们这样做,我运行下面定义的Search()函数。
这里有棘手的部分:我真的不知道我怎么能比较用户输入和我有的!我已经用If语句对它进行了尝试,正如你所看到的那样,但这似乎不起作用。
任何人都可以帮助我解决这个问题吗?
合作项目的一个小tipp cts:请用小写字母开头函数和变量名称,只有类应该以大写字母开头。另外,将函数命名为动词已经成为常见习惯,因为它们可以做些事情:validateInput()将是一个很好的名字。这不仅可以帮助他人理解你的代码,而且还可以帮助你以后进行维护。 – 2014-09-23 08:49:28
谢谢,会做! – 2014-09-23 08:51:01
检查这[回答](http://stackoverflow.com/questions/1181575/javascript-determine-whether-an-array-contains-a-value)和[this](http://stackoverflow.com/questions/ 7378228 /校验如果 - 值是式阵列与 - 的JavaScript)。 – Rohith 2014-09-23 08:54:17