为什么我不能使用onsubmit来改变innerHTML?

时间:2011-02-22 09:42:36

标签: javascript html forms innerhtml

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

如果我使用按钮类型的输入 onclick ,则可以使用。

提交按钮,其中 onsubmit 在表单中将文本更改为瞬间,然后更改回来。我需要为我的翻译程序使用表单,以便如何使其工作?

额外信用:为什么它会在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 个答案:

答案 0 :(得分:3)

它正在改变它,因为表单正在提交。它发布到同一页面,如果你在本地机器上,它可能会很快你没有注意到。尝试:

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

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