为什么脚本没有按预期迭代for循环?
Why is the script not iterating the for loop as expected?
我希望在单击提交按钮时,脚本检查bookDirectory对象中的输入,如果找到,则显示其指定的凭据。但是,它不会这样做,只是刷新输入栏。我做错了什么?
<!DOCTYPE html>
<html>
<head>
<title>This is just a test</title>
<script src="script.js"></script>
</head>
<body>
<h1>This is going to be the search bar</h1>
<form>
<input type="text" id="BookName" name="Book1">
<input type="submit" id="Searchbtn" onclick="algo()">
</form>
<script>
var search = document.getElementById('BookName');
var bookDirectory = {};
bookDirectory.book1 = {
bookName : "book1",
bookTag1 : "MAIT",
bookTag2 : "3rd Semester"
};
bookDirectory.book2 = {
bookName : "book2",
bookTag1 : "NIEC",
bookTag2 : "1st Semester"
};
bookDirectory.book3 = {
bookName : "book3",
bookTag1 : "USIT",
bookTag2 : "5th Semester"
};
function algo(search){
for(var name in bookDirectory){
if(bookDirectory[name].bookName === search){
alert(bookDirectory[name].bookTag1);
}
}
};
</script>
<h2 id="Book1">This is going to be the book</h2>
</body>
</html>
您没有向算法函数传递参数。从算法函数中删除参数。将算法函数更改为
function algo(){
var search = document.getElementById('BookName').value;
for(var name in bookDirectory){
if(bookDirectory[name].bookName === search){
alert(bookDirectory[name].bookTag1);
}
}
};
- 将
type="submit"
改为type="button"提交就像发出服务器请求并刷新页面或使用<button>
<button id="Searchbtn" onclick="algo()"> Test </button>
- 您没有向
algo
函数传递搜索参数
函数algo() {
var search = document.getElementById("BookName").value;
for (var name in bookDirectory) {
if (bookDirectory[name].bookName === search) {
alert(bookDirectory[name].bookTag1);
}
}
};
每次调用函数时从文本框中获取值
just change
onclick="algo()"
onsubmit="algo()"
相关文章:
- 从两个基于0的for循环迭代器中获取单个基于0的索引的公式
- 为什么我不能用for Each迭代对象
- 我的Javascript for循环在1次迭代后停止
- 在javascript for循环的迭代之间应用延迟
- 在 for 循环中查找变量的迭代总和
- 为什么这个 JavaScript switch 语句(在 for 循环内)保留了上一次迭代的值
- 如何验证for循环是否完成了node js中的所有迭代,循环是否包含带回调的函数调用
- Javascript数组中未定义的值是否使用任何内存或在for in循环中迭代
- for循环只迭代一次
- node.js for循环在函数调用返回之前进行迭代,从而产生对象问题
- 使用for.of迭代时删除集合中的元素是否安全
- 如何在 angular.for 每次迭代期间推送新行
- 如何重新构建此 for 循环,以便在异步 api 调用完成之前不会进行下一次迭代
- For 循环在每次迭代后跳过一次
- 如何在中断之前遍历此 for 循环中的所有城市?现在它只是迭代一个
- 使用 for 循环,如何迭代对象以向其添加 id 属性
- For 循环不迭代,输出的数据不超过第一个任务
- 在 Coffeescript 中强制迭代 for 循环
- 为什么脚本没有按预期迭代for循环?
- 调用内部异步回调后迭代for循环