Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript未定义错误-从窗体获取值_Javascript_Forms_Jsp_Undefined - Fatal编程技术网

javascript未定义错误-从窗体获取值

javascript未定义错误-从窗体获取值,javascript,forms,jsp,undefined,Javascript,Forms,Jsp,Undefined,我是初学者!我开始学习javascript,但有一个错误,我找不到解决它的方法 未捕获的TypeError:无法读取未定义的属性“值” 在正确的位置(homography.jsp:50) 在HTMLInputElement.onclick上(homotation.jsp:63) 当我按下“完成”按钮时就会发生这种情况。我想从表单中获取一个值。但该值总是“未定义”,我无法将其更改为数字或字符串。也许我没有得到这个值。你能帮帮我吗 <%@ page language="java" conten

我是初学者!我开始学习javascript,但有一个错误,我找不到解决它的方法

未捕获的TypeError:无法读取未定义的属性“值” 在正确的位置(homography.jsp:50) 在HTMLInputElement.onclick上(homotation.jsp:63)

当我按下“完成”按钮时就会发生这种情况。我想从表单中获取一个值。但该值总是“未定义”,我无法将其更改为数字或字符串。也许我没有得到这个值。你能帮帮我吗

<%@ 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>