从javascript中显示html文本框中的值

时间:2014-01-28 03:43:38

标签: javascript html

在我的代码中,我有三个单选按钮,如果用户选择一个并单击提交按钮(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;

        }

2 个答案:

答案 0 :(得分:0)

在页面重新加载(ctrl + f5)时,文本框设置为在html中设置的默认值。如果您想在页面刷新后保留文本框中的新值。我建议你使用cookies。

http://www.w3schools.com/js/js_cookies.asp

答案 1 :(得分:0)

updated demo

check here

你想要这样的东西吗? 它会反映你的结果“这是你的问题:”文本框,我改变了价值“

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;

  }