需要javascript测试帮助吗

需要javascript测试帮助吗,javascript,html,Javascript,Html,所以基本上我的问题是我需要提交按钮弹出一个新窗口,包含分数和正确答案。以下是我试图做的,但不起作用: (正文代码): <form id="textcont" name="htmltest" onSubmit="return checkAll() && results()"> <b>1) Τι σημαίνει HTML?</b><br> <input type="radio" name="q1" value="a" oncli

所以基本上我的问题是我需要提交按钮弹出一个新窗口,包含分数和正确答案。以下是我试图做的,但不起作用: (正文代码):

<form id="textcont" name="htmltest" onSubmit="return checkAll() && results()">
<b>1) Τι σημαίνει HTML?</b><br>
<input type="radio" name="q1" value="a" onclick="score[1]=0">a) Home Tool Markup Language<br>
<input type="radio" name="q1" value="b" onclick="score[1]=0">b) Hyperlinks and Text Markup Language<br>
<input type="radio" name="q1" value="c" onclick="score[1]=1">c) Hyper Text Markup Language<br>

<b>2) Διάλεξε το σωστό HTML tag για την μεγαλύτερη επικεφαλίδα:</b><br>
<input type="radio" name="q2" value="a" onclick="score[2]=0">a) < h6 ><br>
<input type="radio" name="q2" value="b" onclick="score[2]=0">b) < head ><br>
<input type="radio" name="q2" value="c" onclick="score[2]=1">c) < h1 ><br>

<b>3) Ποιο είναι το σωστό HTML tag για line break?</b><br>
<input type="radio" name="q3" value="a" onclick="score[3]=0">a) < break ><br>
<input type="radio" name="q3" value="b" onclick="score[3]=0">b) < lb ><br>
<input type="radio" name="q3" value="c" onclick="score[3]=1">c) < br ><br>

<b>4) Διάλεξε το σωστό HTML tag για να κάνεις bold κάποια γράμματα:</b><br>
<input type="radio" name="q4" value="a" onclick="score[4]=0">a) < bold ><br>
<input type="radio" name="q4" value="b" onclick="score[4]=1">b) < b ><br>
<input type="radio" name="q4" value="c" onclick="score[4]=0">c) < text.bold ><br>

<b>5) Ποιος είναι ο σωστός τρόπος για να δημιουργήσετε έναν υπερσύνδεσμο;</b><br>
<input type="radio" name="q5" value="a" onclick="score[5]=0">a) < a url="http://www.unipi.gr">Unipi.gr < / a><br>
<input type="radio" name="q5" value="b" onclick="score[5]=1">b) < a href="http://www.unipi.gr">Unipi.gr< / a><br>
<input type="radio" name="q5" value="c" onclick="score[5]=0">c) < a >http://www.unipi.gr"< / a><br>

<b>6) Ποια απο τα παρακάτω HTML tag απευθύνονται όλα σε πίνακα?</b><br>
<input type="radio" name="q6" value="a" onclick="score[6]=0">a) < table >, < head >, < tfoot ><br>
<input type="radio" name="q6" value="b" onclick="score[6]=0">b) < table >, < tr >, < tt ><br>
<input type="radio" name="q6" value="c" onclick="score[6]=1">c) < table >, < tr> , < td ><br>

<input type="submit" value="Αξιολόγηση"> <input type="reset" value="Reset"><br><br>
</form>
function checkAll()
{
    var oops = "";
    for ( var q = 1; q <= 6; ++q )
    {
        var rbs = document.htmltest["q" + q];
        var okay = false;
        for ( var r = 0; r < rbs.length; ++r )
        {
            if ( rbs[r].checked ) okay = true;
        }
        if ( ! okay ) oops += "," + q;
    }
    if ( oops != "" )
    {
        alert("Δεν απαντήσατε στις εξής ερωτήσεις: " + oops.substring(1) +"\n Παρακαλώ απαντήστε σε όλες τις ερωτήσεις.");
        return false;
    }
    return true;
}

var score = new Array;
function results()
{
var i, total;
total = 0;
for(i=1;i<=6;i++)
{
total += score[i];
}
window=window.open("resultshtml.html","answers","width=400px,height=700px");
}
<html>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-7">
<head>
    <title>html test results</title>
</head>
    <link rel="stylesheet" type="text/css" href="stylesheet.css"/>
<body>
<script type="text/javascript">
var total = window.opener.total;
document.write(total);
</script>
</body>
</html>

1) ισημαίνειHTML?
a) 主工具标记语言
b) 超链接和文本标记语言
c) 超文本标记语言
2) ΔιλεξετοσωσττόHTML标记γιατημεγαλύτερηεεπικφαλδα:
a)

b)
c)


3) ∏οοείναιτσωσττόHTML标记για换行?
a)
b)
c)

4) ΔιλεξετσωστόHTML标记γιανακάνειςboldκάποιαγράματα:
a)
b)
c)
5) Ποιος είναι ο σωστός τρόπος για να δημιουργήσετε έναν υπερσύνδεσμο;
a) Unipi.gr
b) Unipi.gr
c) http://www.unipi.gr“
6) παπαπταπαρακτωHTML标记απεⅤθνⅤταΓ972;λασεπεπνακα
a) ,,
b)
,,
c)



javascript文件:

<form id="textcont" name="htmltest" onSubmit="return checkAll() && results()">
<b>1) Τι σημαίνει HTML?</b><br>
<input type="radio" name="q1" value="a" onclick="score[1]=0">a) Home Tool Markup Language<br>
<input type="radio" name="q1" value="b" onclick="score[1]=0">b) Hyperlinks and Text Markup Language<br>
<input type="radio" name="q1" value="c" onclick="score[1]=1">c) Hyper Text Markup Language<br>

<b>2) Διάλεξε το σωστό HTML tag για την μεγαλύτερη επικεφαλίδα:</b><br>
<input type="radio" name="q2" value="a" onclick="score[2]=0">a) < h6 ><br>
<input type="radio" name="q2" value="b" onclick="score[2]=0">b) < head ><br>
<input type="radio" name="q2" value="c" onclick="score[2]=1">c) < h1 ><br>

<b>3) Ποιο είναι το σωστό HTML tag για line break?</b><br>
<input type="radio" name="q3" value="a" onclick="score[3]=0">a) < break ><br>
<input type="radio" name="q3" value="b" onclick="score[3]=0">b) < lb ><br>
<input type="radio" name="q3" value="c" onclick="score[3]=1">c) < br ><br>

<b>4) Διάλεξε το σωστό HTML tag για να κάνεις bold κάποια γράμματα:</b><br>
<input type="radio" name="q4" value="a" onclick="score[4]=0">a) < bold ><br>
<input type="radio" name="q4" value="b" onclick="score[4]=1">b) < b ><br>
<input type="radio" name="q4" value="c" onclick="score[4]=0">c) < text.bold ><br>

<b>5) Ποιος είναι ο σωστός τρόπος για να δημιουργήσετε έναν υπερσύνδεσμο;</b><br>
<input type="radio" name="q5" value="a" onclick="score[5]=0">a) < a url="http://www.unipi.gr">Unipi.gr < / a><br>
<input type="radio" name="q5" value="b" onclick="score[5]=1">b) < a href="http://www.unipi.gr">Unipi.gr< / a><br>
<input type="radio" name="q5" value="c" onclick="score[5]=0">c) < a >http://www.unipi.gr"< / a><br>

<b>6) Ποια απο τα παρακάτω HTML tag απευθύνονται όλα σε πίνακα?</b><br>
<input type="radio" name="q6" value="a" onclick="score[6]=0">a) < table >, < head >, < tfoot ><br>
<input type="radio" name="q6" value="b" onclick="score[6]=0">b) < table >, < tr >, < tt ><br>
<input type="radio" name="q6" value="c" onclick="score[6]=1">c) < table >, < tr> , < td ><br>

<input type="submit" value="Αξιολόγηση"> <input type="reset" value="Reset"><br><br>
</form>
function checkAll()
{
    var oops = "";
    for ( var q = 1; q <= 6; ++q )
    {
        var rbs = document.htmltest["q" + q];
        var okay = false;
        for ( var r = 0; r < rbs.length; ++r )
        {
            if ( rbs[r].checked ) okay = true;
        }
        if ( ! okay ) oops += "," + q;
    }
    if ( oops != "" )
    {
        alert("Δεν απαντήσατε στις εξής ερωτήσεις: " + oops.substring(1) +"\n Παρακαλώ απαντήστε σε όλες τις ερωτήσεις.");
        return false;
    }
    return true;
}

var score = new Array;
function results()
{
var i, total;
total = 0;
for(i=1;i<=6;i++)
{
total += score[i];
}
window=window.open("resultshtml.html","answers","width=400px,height=700px");
}
<html>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-7">
<head>
    <title>html test results</title>
</head>
    <link rel="stylesheet" type="text/css" href="stylesheet.css"/>
<body>
<script type="text/javascript">
var total = window.opener.total;
document.write(total);
</script>
</body>
</html>
函数checkAll()
{
var-oops=“”;

对于(var q=1;q尝试从
var i,total;
声明中删除total?我认为这样会创建一个局部作用域变量

function results()
{
var i, total;
这将
total
声明为局部变量,无法从其他窗口访问。您可以通过从
var
语句中删除该部分(并可以选择将变量的新
var
语句置于任何函数之外)来修复该问题(使其成为全局变量)


作为旁注,您应该为表单中的小于/大于号使用
转义码。这将消除插入空格的需要并使其更有效。我发现您至少有两个问题:

  • 您必须在全局范围中定义
    total
    ,以便
    窗口。打开者可以访问它
  • 由于表单正在提交,页面将重新加载,
    score
    total
    和所有其他变量将返回其初始状态。因此,您必须停止表单提交:
    return false
    on function
    results
注:

从无线电输入修改分数的方式不好。最好使用
属性来传达信息:

<input type="radio" name="q2" value="c" onclick="score[2]=1">...
vs
<input type="radio" name="q2" value="2,1">...

# iterate over selected inputs
var pair = selected_input.value.split(",")
var key = pair[0], value = pair[1];
score[key] = value;

如果您希望此代码出现在弹出窗口中,则在弹出窗口中创建一个函数,并使用所需信息从父级调用它(
score
)。在任何情况下,您都不会依赖是否重新加载父页面。

仍然如此,问题可能与我的编码有关,因为我刚刚开始学习。我认为整个结果()函数错误。可能是一种计算分数的新方法?尝试使用调试器。Firefox的Firebug和Chrome的Chrome调试器。如果在代码中放置console.info(“日志语句”);您可以跟踪错误并查看特定点的变量值。调试器也可以为您这样做:)祝你好运!啊。你没有在任何地方设置
score
变量。非常感谢你为旁注设置thx。但是,如果我移动var Total=0,那么Total仍然不起作用;在函数之前,我在新窗口中得到的都是0,因为函数不像以前那样计算分数。因此,我想我需要一种新的方法:S