所以我隐藏物品,直到有人在表格中放入一个秘密词。它实际上工作,但然后它重新加载页面。我错过了什么? 你可以在这里看到:xxx在项目下,密码是' - '。
这是我正在使用的代码:
<script language="javascript">
function projectsvisible()
{
document.getElementById("myprojects").style.display = "block";
}
function projectshide()
{
document.getElementById("myprojects").style.display = "none";
}
function projectsshow()
{
if(document.getElementById("password").value=="danielle")
{
projectsvisible();
}
else { projectshide(); }
}
</script>
答案 0 :(得分:1)
您正在使用带有提交按钮的表单。这将创建并触发重新加载Http请求的同步页面。你不应该使用表格。只需使用带有单击处理程序的普通按钮,然后将它们包装在div中。
答案 1 :(得分:1)
由于按钮类型submit
,它会自动刷新。这将导致回发到页面并刷新。还有一些工作方法:
return false;
添加到内联处理程序或函数e.preventDefault
e
event
传递给父函数submit
更改为button
答案 2 :(得分:0)
首先,更改<form id="projectform" method="POST" action="#" class="form-horizontal" onsubmit="return projectsshow(); return false">
到
<form id="projectform" method="POST" action="#" class="form-horizontal" onsubmit="return projectsshow();">
然后更改projectsshow()
功能:
function projectsshow()
{
if(document.getElementById("password").value=="danielle")
{
projectsvisible();
}
else { projectshide(); }
return false;
}
答案 3 :(得分:0)
您的按钮正在重新加载页面。您可以在按钮上使用jQuery的event.preventDefault(),或者将div设置为按钮,然后对该按钮执行onlick操作。
答案 4 :(得分:0)
你onsubmit处理程序不返回false。 projectsshow()不返回false。 因此,不会阻止您的表单被提交,因此页面刷新会发生。
<form id="projectform" method="POST" action="#" class="form-horizontal"
onsubmit="return projectsshow(); return false">
修复projectsshow()
方法以返回false或将onsubmit更改为onsubmit="projectsshow(); return false"