我试图改变一个元素的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;
答案 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)
你忘记了一件事并且还有另一个拼写错误:
}
末尾的结束大括号changeit()
; 此外,您还可以直接传递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>