脚本运行后,textarea丢失了信息

时间:2019-04-19 02:19:46

标签: javascript html forms textarea

首先,我对客户端Web编程完全陌生。这是我正在使用的代码的简化版本。

在脚本的第一部分中,我用文本“为什么保留此文本”影响文本区域。当用户单击表单的提交按钮时,我尝试使用“某些其他文本\ n”更改文本区域。但是脚本的结尾,第一个文本总是返回,我不知道为什么。实际上,il似乎在GetRandomNumber()函数末尾重新加载了页面。

<div>
    <form>
        Number of roll: <input type="number" id="numberOfRoll" value="1"><br>
        <input type="submit" value="Get random value" onclick="GetRandomNumber()">
    </form>
</div> 
<div>
    <textarea cols="80" rows=20 id="resultArea"></textarea>
</div>
<script>
    initResultArea();
    function initResultArea() {
        document.getElementById("resultArea").innerHTML="Why is this text staying";
    };
    function GetRandomNumber() {
        var output="SomeOtherText\n";
        document.getElementById("resultArea").innerHTML=output;
    };
</script>

2 个答案:

答案 0 :(得分:1)

将按钮类型更改为button,而不是submit

<div>
<form>
    Number of roll: <input type="number" id="numberOfRoll" value="1"><br>
    <input type="submit" value="Get random value" onclick="GetRandomNumber()">
</form>
</div> 
<div>
    <textarea cols="80" rows=20 id="resultArea"></textarea>
</div>
<script>
    initResultArea();
    function initResultArea() {
        document.getElementById("resultArea").innerHTML="Why is this text staying";
    };
    function GetRandomNumber() {
        var output="SomeOtherText\n";
        document.getElementById("resultArea").innerHTML=output;
    };
</script>

由于将其设置为submit,因此每次您按下按钮时,浏览器都会尝试将表单提交到网页(尚未定义)。除了调用您的函数外,它还可以执行此操作,从而可以重新加载页面。

答案 1 :(得分:0)

您应将类型更改为按钮type="button",而不是提交,它将重定向页面。

另一种方法可以使用onsubmit表单代替<form action="#" onsubmit="return GetRandomNumber()">上的onclick按钮return falseGetRandomNumber()

initResultArea();
    function initResultArea() {
        document.getElementById("resultArea").innerHTML="Why is this text staying";
    };
    function GetRandomNumber() {
        var output="SomeOtherText\n";
        document.getElementById("resultArea").innerHTML=output;
        return false;
    };
<div>
<form action="#" onsubmit="return GetRandomNumber()">
    Number of roll: <input type="number" id="numberOfRoll" value="1"><br>
    <input type="submit" value="Get random value">
</form>
</div> 
<div>
    <textarea cols="80" rows=20 id="resultArea"></textarea>
</div>