javascript未定义错误-从窗体获取值
我是初学者!我开始学习javascript,但有一个错误,我找不到解决它的方法 未捕获的TypeError:无法读取未定义的属性“值” 在正确的位置(homography.jsp:50) 在HTMLInputElement.onclick上(homotation.jsp:63) 当我按下“完成”按钮时就会发生这种情况。我想从表单中获取一个值。但该值总是“未定义”,我无法将其更改为数字或字符串。也许我没有得到这个值。你能帮帮我吗javascript未定义错误-从窗体获取值,javascript,forms,jsp,undefined,Javascript,Forms,Jsp,Undefined,我是初学者!我开始学习javascript,但有一个错误,我找不到解决它的方法 未捕获的TypeError:无法读取未定义的属性“值” 在正确的位置(homography.jsp:50) 在HTMLInputElement.onclick上(homotation.jsp:63) 当我按下“完成”按钮时就会发生这种情况。我想从表单中获取一个值。但该值总是“未定义”,我无法将其更改为数字或字符串。也许我没有得到这个值。你能帮帮我吗 <%@ page language="java" conten
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h2>Homework</h2>
<form name="gugu">
<script type="text/javascript">
//How many questions?
var size=eval(window.prompt("How many questions?"));
var a=new Array(size);
var b=new Array(size);
var ans=new Array(size);
var rst=new Array(size);
var count=0;
//Start
gugugu();
function gugugu() {
document.write("<table border='1'>");
for (var i=0; i<size+1; i++) {
if(i<size) {
document.write("<tr>");
document.write("<td>");
a[i]=parseInt(Math.random()*9)+1;
b[i]=parseInt(Math.random()*9)+1;
rst[i]=a[i]*b[i];
document.write(a[i]+"*"+b[i]+"=");
document.write("</td>");
document.write("<td>");
//I can't get the value!
var str="<input type='text' name='"+i+"'>";
document.write(str);
document.write("</td>");
document.write("</tr>");
} else {
document.write("<tr>");
document.write("<td colspan='2' align='center'>");
document.write("<input type='button' value='done' onclick='correct()'>");
document.write("<input type='button' value='reset' onclick='reset()'>");
document.write("</td>");
document.write("</tr>");
}
}
document.write("</table>");
document.write("count : ");
document.write("<input type='text' value='' name='count' readonly>");
document.write("<br>");
document.write("note : ");
document.write("<input type='text' value='' name='note' readonly>");
}
function correct() {
for (var i=0; i<size;i++) {
//Here I tried putting values into an Array, but 'undefined' happens!
ans[i]=String(document.gugu.i.value);
document.write(typeof(ans[i])+","+rst[i]+"<br>");
if(ans[i]==rst[i]) {
count=count+1;
}
}
document.gugu.count.value=eval(count);
document.gugu.note.value=eval(count*10);
}
function reset() {
clear();
gugugu();
}
</script>
</form>
作业
//有多少问题?
var size=eval(window.prompt(“多少个问题?”);
var a=新数组(大小);
var b=新数组(大小);
var ans=新数组(大小);
var rst=新数组(大小);
var计数=0;
//开始
gugugu();
函数gugugu(){
文件。填写(“”);
对于(var i=0;i我认为您无法访问像这样的html元素document.something
。请查看使用JavaScript访问html元素的不同方式。“gugu”是表单名称,document.gugugu是未定义的,因为它不是全局变量,因此无法获取表单:document.getElementsByName(“gugugu”)
然后,在获取表单(在HtmleElement[]类型中)后,您试图获取一行?,您无法执行表单。i,“i”在这里没有上下文,请从数组ans[]中访问它,这样您可以通过名称(设置为名称的数字)从输入中获取值:
因此,在这里和那里进行一些更改,这是可行的:
<h2>Homework</h2>
<form name="gugu">
<script type="text/javascript">
//How many questions?
var size = eval(window.prompt("How many questions?"));
var a = new Array(size);
var b = new Array(size);
var ans = new Array(size);
var rst = new Array(size);
var count = 0;
//Start
gugugu();
function gugugu() {
document.write("<table border='1'>");
for (var i = 0; i < size + 1; i++) {
if (i < size) {
document.write("<tr>");
document.write("<td>");
a[i] = parseInt(Math.random() * 9) + 1;
b[i] = parseInt(Math.random() * 9) + 1;
rst[i] = a[i] * b[i];
document.write(a[i] + "*" + b[i] + "=");
document.write("</td>");
document.write("<td>");
var str = "<input type='text' name='in" + i + "'>";
document.write(str);
document.write("</td>");
document.write("</tr>");
} else {
document.write("<tr>");
document.write("<td colspan='2' align='center'>");
document.write("<input type='button' value='done' onclick='correct()'>");
document.write("<input type='button' value='reset' onclick='reset()'>");
document.write("</td>");
document.write("</tr>");
}
}
document.write("</table>");
document.write("count : ");
document.write("<input type='text' value='' name='count' readonly>");
document.write("<br>");
document.write("note : ");
document.write("<input type='text' value='' name='note' readonly>");
}
function correct() {
console.log("correct");
for (var i = 0; i < size; i++) {
ans[i] = parseInt(document.getElementsByName("in" + i)[0].value);
console.log(ans[i]);
console.log(rst[i]);
if (ans[i] === rst[i]) {
count = count + 1;
}
}
console.log(count);
document.getElementsByName("count")[0].value = count;
document.getElementsByName("note")[0].value = (count * 10);
}
function reset() {
clear();
gugugu();
}
</script>
</form>
家庭作业
//有多少问题?
var size=eval(window.prompt(“多少个问题?”);
var a=新数组(大小);
var b=新数组(大小);
var ans=新数组(大小);
var rst=新数组(大小);
var计数=0;
//开始
gugugu();
函数gugugu(){
文件。填写(“”);
对于(变量i=0;i”);
文件。填写(“注:”);
文件。填写(“”);
}
函数正确(){
控制台日志(“正确”);
对于(变量i=0;i
你确定你的文档中有gugu
吗?@HagaiWild不幸的是我这么认为……你的意思是表单写错了行,对吗?我会尝试修改它。哦,我还没有学会。我不知道那个网站有我可以尝试的好例子。这会非常有用。谢谢你!你是对的!我解决了这是在你的帮助下完成的。我把那行改成这样。ans[I]=document.gugu.elements[I].value;然后它就开始工作了!最后我可以睡觉了!非常感谢你不客气,别忘了经常来帮助别人!:D
ans[i] = String(document.getElementsByName("" + i)[0].values[i]);
<h2>Homework</h2>
<form name="gugu">
<script type="text/javascript">
//How many questions?
var size = eval(window.prompt("How many questions?"));
var a = new Array(size);
var b = new Array(size);
var ans = new Array(size);
var rst = new Array(size);
var count = 0;
//Start
gugugu();
function gugugu() {
document.write("<table border='1'>");
for (var i = 0; i < size + 1; i++) {
if (i < size) {
document.write("<tr>");
document.write("<td>");
a[i] = parseInt(Math.random() * 9) + 1;
b[i] = parseInt(Math.random() * 9) + 1;
rst[i] = a[i] * b[i];
document.write(a[i] + "*" + b[i] + "=");
document.write("</td>");
document.write("<td>");
var str = "<input type='text' name='in" + i + "'>";
document.write(str);
document.write("</td>");
document.write("</tr>");
} else {
document.write("<tr>");
document.write("<td colspan='2' align='center'>");
document.write("<input type='button' value='done' onclick='correct()'>");
document.write("<input type='button' value='reset' onclick='reset()'>");
document.write("</td>");
document.write("</tr>");
}
}
document.write("</table>");
document.write("count : ");
document.write("<input type='text' value='' name='count' readonly>");
document.write("<br>");
document.write("note : ");
document.write("<input type='text' value='' name='note' readonly>");
}
function correct() {
console.log("correct");
for (var i = 0; i < size; i++) {
ans[i] = parseInt(document.getElementsByName("in" + i)[0].value);
console.log(ans[i]);
console.log(rst[i]);
if (ans[i] === rst[i]) {
count = count + 1;
}
}
console.log(count);
document.getElementsByName("count")[0].value = count;
document.getElementsByName("note")[0].value = (count * 10);
}
function reset() {
clear();
gugugu();
}
</script>
</form>