在我的代码中,我有三个单选按钮,如果用户选择一个并单击提交按钮(name =“generateQuestion”),它应该根据用户的选择在文本框中显示一些文本(name =“quest”)。我的问题是,我从javascript获得了一些价值,但它出现在html文本框中并立即消失。似乎在单击提交按钮时调用了javascript函数并更新了文本框值,但是当页面重新加载时,值消失,文本框再次保持默认值。我需要保留文本框中的值。我用IE,FF和chrome检查了问题并得到了相同的结果。如果我需要在代码中添加内容,请告诉我。现在我还没有在JS函数中编写逻辑供用户选择,只需要从javascript设置html文本框值,单击提交按钮后该值应保留在文本框中。
HTML
<form id="mathForm" name="mathForm" action="" method="post">
Step 1: Do you want to Add, Substract or Multiply?<br>
<input type="radio" id = "add" name="mathQ" value="addition">Answer a question on Addition<br>
<input type="radio" id = "subt" name="mathQ" value="subtraction">Answer a question on subtraction<br>
<input type="radio" id = "mul" name="mathQ" value="multiplication">Answer a question on multiplication<br>
<input type="submit" onclick="setQuestion()" id = "genQues" name="generateQuestion" value=" Step 2:Generate Question Item! "><br><br>
Here's your Question:<br>
<input type="text" id="quest" name="quest" size="45"><br><br>
Step 3:Type your answer here:<br>
<input type="text" name="answer" size="45"><br><br>
<input type="submit" name="checkAnswer" value=" Step 4:See if you are right! "><br><br>
</form>
的Javascript
var radioVal;
function setQuestion()
{
var radios = document.getElementsByName('mathQ');
for (var i = 0, length = radios.length; i < length; i++)
{
if (radios[i].checked)
{
radioVal = radios[i].value;
break;
}
}
var num1 = (Math.random()*10^17)%19;
var num2 = (Math.random()*10^17)%19;
var txt = 'some text';
var tbox = document.getElementById('quest');
tbox.value = txt;
}
答案 0 :(得分:0)
在页面重新加载(ctrl + f5)时,文本框设置为在html中设置的默认值。如果您想在页面刷新后保留文本框中的新值。我建议你使用cookies。
答案 1 :(得分:0)
你想要这样的东西吗? 它会反映你的结果“这是你的问题:”文本框,我改变了价值“
function setQuestion()
{
var radios = document.querySelector('input[name="mathQ"]:checked').value;
var num1 = (Math.random()*10^17)%19;
var num2 = (Math.random()*10^17)%19;
var txt = num1 + radios + num2;
var tbox = document.getElementById('quest');
tbox.value = txt;
}