文本区域在脚本 运行 后丢失信息
textarea loses information after a script is ran
首先,我对客户端 Web 编程完全陌生。这是我正在使用的代码的简化版本。
在脚本的第一部分,我用文本 "Why is this text staying" 影响了一个文本区域。当用户单击表单的提交按钮时,我尝试使用 "Some Other Text\n" 更改文本区域。但是剧本的结尾,第一个文本总是回来,我不知道为什么。实际上,看起来页面正在 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>
将按钮类型更改为 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
,每次您按下按钮时,浏览器都会尝试将您的表单提交到网页(尚未定义)。除了调用您的函数之外,它还执行此操作,这就是页面重新加载的原因。
您应该将类型更改为按钮 type="button"
而不是提交,它将重定向页面。
另一种方法可以使用 onsubmit 表单代替 onclick 按钮 <form action="#" onsubmit="return GetRandomNumber()">
和 return false
on GetRandomNumber()
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>
首先,我对客户端 Web 编程完全陌生。这是我正在使用的代码的简化版本。
在脚本的第一部分,我用文本 "Why is this text staying" 影响了一个文本区域。当用户单击表单的提交按钮时,我尝试使用 "Some Other Text\n" 更改文本区域。但是剧本的结尾,第一个文本总是回来,我不知道为什么。实际上,看起来页面正在 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>
将按钮类型更改为 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
,每次您按下按钮时,浏览器都会尝试将您的表单提交到网页(尚未定义)。除了调用您的函数之外,它还执行此操作,这就是页面重新加载的原因。
您应该将类型更改为按钮 type="button"
而不是提交,它将重定向页面。
另一种方法可以使用 onsubmit 表单代替 onclick 按钮 <form action="#" onsubmit="return GetRandomNumber()">
和 return false
on GetRandomNumber()
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>