【发布时间】:2014-03-31 12:57:33
【问题描述】:
我正在学习 javascript,对于课堂作业,我正在做一个简单的测验。在这里找到:http://redwood.colorado.edu/scho5922/dm2/projects/project1.html
我的问题是我无法正确验证单选按钮。这可以防止计算测验分数。当您单击输入时,它会循环问题,但选择正确答案不会增加分数。我已经通过在 if 语句后添加警报和显示“分数”变量的按钮来测试这一点。正确答案没有提示,分数按钮(当前版本没有)显示分数为 0。
JavaScript
<script>
var beers =[
["New World Porter", "Avery"],
["Ellie's Brown Ale","Avery"] ,
["Out of Bounds Stout","Avery"] ,
["Hazed & Infused Dry Hopped Ale", "Boulder Beer"],
["Sweaty Betty Blonde Ale", "Boulder Beer"],
["Mojo IPA", "Boulder Beer"],
["Mama's Little Yellow Pils", "Oskar Blues"],
["Dale's Pale Ale", "Oskar Blues"],
["G'Knight Imperial Red Ale","Oskar Blues"],
["Old Chub Scotch Ale","Oskar Blues"]
] ;
var score = 0;
var questionNum = 0;
var turns = 0;
function enterF (beer){
questionNum++;
turns++;
var question = "What brewery makes ";
document.getElementById("header").innerHTML= question + beers[questionNum][0];
var answer = document.getElementsByName("beerbut").value.checked;
if(answers[i].checked == beers[questionNum-1][1]){
score++;
alert(score);
}
}
</script>
HTML
<body onload="popup()">
<h1 id="header">What brewery makes New World Porter</h1>
<div class="buttons">
<form>
<label for="_avery"> Avery</label>
<input type="radio" name="beerbut" id="_avery" value="Avery">
<br><br>
<label for="_bb"> Boulder Beer</label>
<input type="radio" name="beerbut" id="_bb" value="Boulder Beer">
<br><br>
<label for="_oskar"> Oskar Blues</label>
<input type="radio" name="beerbut" id="_oskar" value="Oskar Blues">
<br><br>
<label for="lefthand"> Left Hand </label>
<input type="radio" name="beerbut" id="_lefthand" value="Left Hand">
<br><br>
<input type="button" name="enter" id="enterbut" value="enter" onClick="enterF()">
</form>
</div>
</body>
</html>
【问题讨论】:
-
警告和 if 语句引用不在您发布的代码中,这将有助于查看
-
您在按钮上调用 enterF() 时不带任何参数。有没有你忘记发布的脚本?
-
ok 参数已添加。下面发布的解决方案会增加分数计数器,但无论答案如何,它都会这样做。
标签: javascript html validation button radio