为啥我不能使用 onsubmit 来更改 innerHTML?

Posted

技术标签:

【中文标题】为啥我不能使用 onsubmit 来更改 innerHTML?【英文标题】:Why can't I use onsubmit to change innerHTML?为什么我不能使用 onsubmit 来更改 innerHTML? 【发布时间】:2011-07-01 21:06:04 【问题描述】:

我需要在英语/氨基酸代码翻译器中使用表单域。下面的代码被简化以显示我遇到的问题。我想用 javascript 函数更改一些文本。

如果我使用类型为 button 的输入,onclick 就可以了。

表单中带有onsubmitsubmit 按钮会在瞬间更改文本,然后又变回来。我需要为我的翻译程序使用一个表格,我怎样才能使它工作?

额外功劳:为什么它会随着 onsubmit 瞬间改变?

<html>
<head>
<script type="text/javascript">
function changeTo(text)
    document.getElementById("p1").innerHTML=text;

</script>
</head>
<body>
<h1 style="text-align:center;">Change text in an element</h1>
<!--
<form onsubmit="changeTo('Hello World');">
<input type="submit" />
</form>
-->
<input type="button" onclick="changeTo('Hello World');" />
<p id="p1">text</p>

</body>
</html>

【问题讨论】:

【参考方案1】:

由于表单正在提交,因此将其改回。它发布到同一页面,如果您在本地计算机上,它可能会很快您不会注意到。试试:

<form onsubmit="changeTo('Hello World');return false;">
<input type="submit" />
</form>

最后返回 false 将停止提交过程。

【讨论】:

以上是关于为啥我不能使用 onsubmit 来更改 innerHTML?的主要内容,如果未能解决你的问题,请参考以下文章

在 TextField() 中为啥我们使用“onSubmitted:”语法?

ASP中,onsubmit该如何使用?为啥我设置后,form表单中要执行的onsubmit没效果呢?

为啥我不能更改已定义元素的类名

为啥我不能通过更改“高度”值来调整浏览器上的 Onlyoffice 高度

vue.js test-utils 为啥我的 onSubmit 函数 mock 没有被调用?

为啥我不能通过取消选中 CodeIgniter 中的复选框来更改数据库中的数据?