使用Javascript存储表单值

时间:2014-07-05 01:10:04

标签: javascript

我正在尝试构建一个测验引擎,教师可以在其中创建新的测验并向其中添加问题。我现在面临的问题是,当我为问题编写了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()的空字符串”错误。 任何人都可以告诉我,我做得对吗?

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

1 个答案:

答案 0 :(得分:0)

你有2个具有相同ID的输入,2个具有相同ID的复选框,这不应该是这样。

此外,如果你在你的函数中使用jQuery,只需继续在你的最后使用jQuery&#34; if&#34;。

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

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