需要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 functionresults
注:
从无线电输入修改分数的方式不好。最好使用值 属性来传达信息:
<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
|