使用Javascript存储表单值

Using Javascript to store form values

本文关键字:表单 存储 Javascript 使用      更新时间:2023-09-26

我正在尝试构建一个测验引擎,教师可以在其中创建新的测验并添加问题。我现在面临的问题是,当我写了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()"在控制台上的错误。谁能告诉我我做得对不对?

我是初学者,所以我不完全明白我在做什么。

你有两个相同ID的输入,还有两个相同ID的复选框,这不应该是这样的

除此之外,如果你在你的函数中使用jQuery,只要在你的最后一个"if"中继续使用jQuery。

    var a = $("#option1").val();

但是您需要更改输入的ID,并非所有输入都可以相同....