innerhtml不能chage(保持重置)

时间:2015-02-10 16:43:59

标签: javascript innerhtml

我试图改变一个元素的innerhtml,但它不断重新回到" ddd"每按一下按钮



<form>
<p id="passError">ddd</p>
<button id="submit">Login</button>
</form>

<script type="text/javascript">
document.getElementById("submit").onclick = function(){changeit()};
function changeit()
{
    pError = document.getElementById("passError");
    pError.innerHTML = ("wrong password");
</script>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

首先,您缺少函数上的},然后在提交时提交您必须提交的表单。您不需要更改函数的包装函数,您可以将其直接传递给onclick变量。

<form>
<p id="passError">ddd</p>
<button id="submit">Login</button>
</form>

<script type="text/javascript">
document.getElementById("submit").onclick = changeit;
function changeit(event)
{
    event.preventDefault();
    pError = document.getElementById("passError");
    pError.innerHTML = "wrong password";
}
</script>

答案 1 :(得分:0)

你忘记了一件事并且还有另一个拼写错误:

  • 您忘记了@antyrat提及的函数}末尾的结束大括号changeit();
  • 您希望将字符串直接放在innerHTML分配中,不使用括号。 (参见MDN的innerHTML documentation

此外,您还可以直接传递changeit函数,而不是使用匿名函数,并将pError放入正确的声明变量中。 :)

当您使用<form>时,还需要通过调用函数中click事件的preventDefault()函数来阻止提交按钮的默认行为。

以下代码正常运行。我更正了这些元素,只是添加了一些缩进和间距,以使代码更加用户友好。

<form>
  <p id="passError">ddd</p>
  <button id="submit">Login</button>
</form>

<script type="text/javascript">

document.getElementById("submit").onclick = changeit;

function changeit(evt) {
    evt.preventDefault();
    var pError = document.getElementById("passError");
    pError.innerHTML = "wrong password";
}
</script>