Javascript几乎正常工作,但它重新加载页面?

时间:2013-10-25 17:32:36

标签: javascript

所以我隐藏物品,直到有人在表格中放入一个秘密词。它实际上工作,但然后它重新加载页面。我错过了什么? 你可以在这里看到: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>

5 个答案:

答案 0 :(得分:1)

您正在使用带有提交按钮的表单。这将创建并触发重新加载Http请求的同步页面。你不应该使用表格。只需使用带有单击处理程序的普通按钮,然后将它们包装在div中。

答案 1 :(得分:1)

由于按钮类型submit,它会自动刷新。这将导致回发到页面并刷新。还有一些工作方法:

  1. return false;添加到内联处理程序或函数
  2. 使用e.preventDefault e event传递给父函数
  3. 将您的按键类型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"