【问题标题】:Showing value in html textbox from javascript从 javascript 在 html 文本框中显示值
【发布时间】:2014-01-28 12:44:26
【问题描述】:

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

        }

【问题讨论】:

  • 正在从服务器发送响应。让它包含 HTML 中的值。

标签: javascript html


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    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;
    
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      相关资源
      最近更新 更多