0

所以我会隐藏项目,直到有人在表格中输入一个秘密词。它确实有效,但随后会重新加载页面。我错过了什么?你可以在这里看到:项目下的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>
4

5 回答 5

1

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

于 2013-10-25T17:39:58.613 回答
1

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

  1. 添加return false;到您的内联处理程序或函数
  2. 使用e.preventDefaultwhere传入父e函数event
  3. 将按钮类型更改submitbutton
于 2013-10-25T17:40:32.937 回答
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; 
} 
于 2013-10-25T17:38:42.030 回答
0

您的按钮是重新加载页面的按钮。您可以在按钮上使用 jQuery 的 event.preventDefault() ,或者将 div 设置为看起来像按钮并在按钮上执行 onlick 操作。

于 2013-10-25T17:40:36.243 回答
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"

于 2013-10-25T17:41:04.587 回答