我正在尝试构建一个测验引擎,教师可以在其中创建新的测验并向其中添加问题。我现在面临的问题是,当我为问题编写了4个选项,然后我更改了我的问题类型时,这些答案就会丢失。
这些答案需要存储(在某些变量或数组中),这样当我切换回上一个问题类型时,我的答案将再次出现在输入框中。
这就是我要做的事情:
<select onchange="question_type(this.value);" name="qtype" id="qtype" class="form-control input-lg" required>
<option value="">-- Select question type for this quiz --</option>
<option value="mcq">1) MCQs</option>
<option value="tf">2) True/False</option>
</select>
<input type="text" size="70" name="option" id="option1" class="form-control input-lg" placeholder="Option A" required>
<input class="css-checkbox" type="radio" name="radio" id="radio1" value="a" />
<label for="radio1" class="css-label"></label>
<input type="text" size="70" name="option2" id="option2" class="form-control input-lg" placeholder="Option B" required>
<input class="css-checkbox" type="radio" name="radio2" id="radio2" value="b" />
<label for="radio2" class="css-label"></label>
这是javascript函数:
function question_type(type)
{
if (type == "tf")
{
$('.not-tf').hide();
$('#option1').val('True');
$('#option2').val('False');
$('#option3').val('@nottf');
$('#option4').val('@nottf');
}
else if (type == "mcq")
{
$('.not-tf').show();
$('#option1').val('');
$('#option2').val('');
$('#option3').val('');
$('#option4').val('');
}
else if(type=="mcq" && (!($('#option1').val(' '))||!($('#option2').val(' '))||!($('#option3').val(' '))||!($('#option4').val(' ')))
{
var a=document.getElementById("option1").name;
var b=document.getElementById("option2").name;
var c=document.getElementById("option3").name;
var d=document.getElementById("option4").name;
console.log("a is"+" "+a+" "+"b is"+" "+b+"c is"+" "+c+" "+"d is"+" "+d);
}
}
现在的问题是我的答案仍未存储,而且我在控制台上收到“传递给getElementByID()的空字符串”错误。 任何人都可以告诉我,我做得对吗?
我是初学者,所以我不完全理解我在做什么。
答案 0 :(得分:0)
你有2个具有相同ID的输入,2个具有相同ID的复选框,这不应该是这样。
此外,如果你在你的函数中使用jQuery,只需继续在你的最后使用jQuery&#34; if&#34;。
var a = $("#option1").val();
但是您需要更改输入的ID,而不是所有输入都可以相同....