我在编程中遇到了一个新问题。我正在尝试创建一个测验,我在html文件中编写了一个脚本,它运行得很好。但是,我想将脚本与html文件分开,因此我将脚本代码放入js文档并将其链接到索引文件。从我之前的经验来看,它始终有效,无需改变任何东西。但是,现在我收到一条错误消息,说明函数checkAnswer未定义!?即使它是用js文档编写的。以下是一些代码。
function _(x) {
return document.getElementById(x);
}
function renderQuestion() {
test = _("test1");
if(pos >= questions.length){
test.innerHTML = "<h2>You got "+correct+" of "+questions.length+" questions correct</h2>";
_("testStatus").innerHTML = "Test Completed";
pos = 0;
correct = 0;
return false;
}
_("testStatus").innerHTML = "Question " + (pos + 1)+ "of " + questions.length;
question = questions[pos][0];
chA = questions[pos][1];
chB = questions[pos][2];
chC = questions[pos][3];
test.innerHTML = question + "<br>";
test.innerHTML += "<input type='radio' name='choices' value='A'> "+chA+"<br>";
test.innerHTML += "<input type='radio' name='choices' value='B'> "+chB+"<br>";
test.innerHTML += "<input type='radio' name='choices' value='C'> "+chC+"<br><br>";
test.innerHTML += "<button onclick='checkAnswer()'>Submit Answer</button>";
}
function checkAnswer() {
choices = document.getElementsByName("choices");
for(var i=0; i<choices.length; i++){
if(choices[i].checked){
choice = choices[i].value;
}
}
if(choice == questions[pos][4]){
correct++;
}
pos++;
renderQuestion();
}
当我查看控制台时,下一行似乎有问题,但我无法弄清楚如何修复它。当我按下提交答案按钮时,我收到错误消息。
test.innerHTML += "<button onclick='checkAnswer()'>Submit Answer</button>";
提前致谢!
这是我小提琴的链接:Redis
我得到的错误消息是index.html第1行上的“checkAnswer未定义”。
答案 0 :(得分:0)
您必须初始化您的功能。在普通javascript中执行此操作的最简单方法是在您的正文结束标记之前向底部的html文件中添加一个init函数。
<body>
<button onclick="doSomething()">click me</button>
<script>
(function() {
init();
})();
</script>
</body>
public class Requirement
{
public RequirementType Type { get; set; }
private object _value;
public object Value
{
get { return _value; }
set
{
if (Type == RequirementType.OS &&
value.GetType() == typeof(OSType))
{
_value = value;
}
else
{
throw new Exception("Value type is incorrect for Type provided");
}
}
}
}