javascript - Javascript;html表单;用户输入;显示输入
问题描述
我不明白为什么这段代码不会显示用户输入的信息。我需要让用户从 html 表单中输入信息,将此信息添加到数组中,然后显示信息(实际上,需要做的不止于此,但无法超越这一点)。我需要输入的信息显示在页面上。谢谢
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Homework 10</title>
<script type="text/javascript">
//Variables for arrays
var fName = [];
var lName = [];
var tScore = [];
//Variables from user input
var fNameInput = document.getElementById("firstName");
var lNameInput = document.getElementById("lastName");
var tScoreInput = document.getElementById("testScore");
//Variable for display
var display = document.getElementById("display");
//Function to add user info to arrays
function insert() {
fName.push(fNameInput.value);
lName.push(lNameInput.value);
tScore.push(tScoreInput.value);
clearAndShow();
}
//Function to display info entered from array
function clearAndShow() {
fNameInput.value = "";
lNameInput.value = "";
tScoreInput.value = "";
display.innerHTML = "";
display.innerHTML += "First Name: " + fName.join(", ") + "<br/>";
display.innerHTML += "LastName: " + lName.join(", ") + "<br/>";
display.innerHTML += "Test Score: " + tScore.join(", ") + "<br/>";
}
</script>
</head>
<body bgcolor="Cornsilk">
<h2>Average Student Scores</h2>
<form>
<fieldset>
<legend><strong>Enter First, Last Name and Test Score:</strong></legend><br />
<input type="text" id="firstName" placeholder="First name"/><p />
<input type="text" id="lastName" placeholder="Last name"/><p />
<input type="number" id="testScore" placeholder="Test Score"/><p />
<input type="button" value="Save/Show Average" onclick="insert()"/><p />
</fieldset><p />
</form>
<div id="display"></div>
</body>
</html>
解决方案
我试图运行代码。我有一个错误,比如
test.html:23 Uncaught ReferenceError: fName is not defined
您可以通过在函数内移动变量声明来解决此问题。
//Variables for arrays
var fName = [];
var lName = [];
var tScore = [];
//Function to add user info to arrays
function insert() {
var fNameInput = document.getElementById("firstName");
var lNameInput = document.getElementById("lastName");
var tScoreInput = document.getElementById("testScore");
fName.push(fNameInput.value);
lName.push(lNameInput.value);
tScore.push(tScoreInput.value);
clearAndShow();
}
//Function to display info entered from array
function clearAndShow() {
var display = document.getElementById("display");
var fNameInput = document.getElementById("firstName");
var lNameInput = document.getElementById("lastName");
var tScoreInput = document.getElementById("testScore");
fNameInput.value = "";
lNameInput.value = "";
tScoreInput.value = "";
display.innerHTML = "";
display.innerHTML += "First Name: " + fName.join(", ") + "<br/>";
display.innerHTML += "LastName: " + lName.join(", ") + "<br/>";
display.innerHTML += "Test Score: " + tScore.join(", ") + "<br/>";
}
原因是初始声明发生时元素不存在。
推荐阅读
- java - 访问 jar 中的 json 文件时出现 java.io.FileNotFoundException
- lookup - 如何在 PowerShell 中为二维数据集实现查找表?
- jasper-reports - IReport - 多个分组
- c++ - Chrome 中的最大 RTCDataChannels
- python - 如何在 websocket 连接中通过 Steam 进行身份验证?
- erlang - Erlang 代码将不带分隔符的字符串拆分并放入列表
- angular - 如何使用 Angular 6 添加 Google 字体库?
- c# - 启动画面完成后台进程后显示主窗体
- javascript - Javascript - 按顺序遍历二叉树。最后一个值是打印未定义
- spring - 无法访问 HazelcastSession 中的公共方法