Javascript innerhtml无法更改(保持重置)

Javascript innerhtml无法更改(保持重置),javascript,innerhtml,Javascript,Innerhtml,我试图改变一个元素的innerhtml,但每次点击按钮它都会重置回“ddd” ddd 登录 document.getElementById(“submit”).onclick=function(){changeit()}; 函数changeit() { pError=document.getElementById(“passeror”); pError.innerHTML=(“错误的密码”); 首先,您缺少函数上的},然后使用submit提交您必须阻止的表单。changeit函数不需要包装器

我试图改变一个元素的innerhtml,但每次点击按钮它都会重置回“ddd”


ddd

登录 document.getElementById(“submit”).onclick=function(){changeit()}; 函数changeit() { pError=document.getElementById(“passeror”); pError.innerHTML=(“错误的密码”);
首先,您缺少函数上的},然后使用submit提交您必须阻止的表单。changeit函数不需要包装器函数,您可以直接将其传递给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>

ddd

登录 document.getElementById(“提交”).onclick=changeit; 功能更改IT(事件) { event.preventDefault(); pError=document.getElementById(“passeror”); pError.innerHTML=“密码错误”; }
您忘了一件事,又犯了一个打字错误:

  • 您忘记了@antyrat提到的函数末尾的结束括号
    }
    changeit()
  • 您希望直接将字符串放入innerHTML赋值中,而不是使用括号。(请参阅来自MDN的)
此外,您还可以直接传递
changeit
函数,而不是使用匿名函数,并将
peror
放入正确的声明变量中。:)

在使用
时,还需要通过在函数中的click事件上调用函数来防止submit按钮的默认行为

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


ddd

登录 document.getElementById(“提交”).onclick=changeit; 功能更改IT(evt){ evt.preventDefault(); var pError=document.getElementById(“passeror”); pError.innerHTML=“密码错误”; }
您忘记关闭花括号了
}
谢谢我更改了它,但它仍然没有更改“ddd”。表单已提交,新页面将作为服务器响应加载。使用
按钮
类型的
按钮
,阻止单击处理程序中的默认操作,删除表单…@strawheart如果帖子回答了您要查找的内容,请不要忘记将其标记为“已选答案”。它将帮助未来的人们回答同样的问题:)奇怪。当我在stackoverflow上运行代码段时,这是有效的,但是当我使用firefox@strawheart没错,是我的错。您的提交按钮在Firefox中具有默认行为,并使网页重新加载。要停止它,必须添加
evt.preventDefault()changeit
功能中选择code>。我现在正在编辑我的代码片段。