javascript - javascript 中的登录弹出窗口未按预期工作

标签 javascript jquery html css

我有以下jsp:

<head lang="en">
 <meta charset="UTF-8">
    <title>Data Platform - Real Time Monitor </title>
    <script src="../dist/ag-grid-enterprise.js?ignore=notused30"></script>
    <script src="../dist/loadingGrid.js"></script>
    <script src="../dist/sortGrid.js"></script>
    <style type="text/css">
    #popupbox{
          margin: 0; 
          margin-left: 40%; 
          margin-right: 40%;
          margin-top: 50px; 
          padding-top: 10px; 
          width: 20%; 
          height: 150px; 
          position: absolute; 
          background: #FBFBF0; 
          border: solid #000000 2px; 
          z-index: 9; 
          font-family: arial; 
          visibility: hidden; 
    }
    </style>
    <script language="JavaScript" type="text/javascript">
         function login(showhide){
           if(showhide == "show"){
             document.getElementById('popupbox').style.visibility="visible";
           }else if(showhide == "hide"){
             document.getElementById('popupbox').style.visibility="hidden"; 
           }
         }
    </script>
    <body style="height: 100%; margin: 0px;">
        <div id="popupbox"> 
           <form name="login" action="" method="post">
               <center>Username:</center>
               <center><input name="username" size="14" /></center>
               <center>Password:</center>
               <center><input name="password" type="password" size="14" /></center>
               <center><input type="submit" name="submit" value="login" /></center>
           </form>
           <br />
          <center><a href="javascript:login('hide');">close</a></center> 
      </div> 
<p><a href="javascript:login('show');">login</a></p>     
<div style="font-style:bold;font-size:30;color:black;"> Data Platform - Monitor

但是当我打开jsp时,顶部会出现一个链接“login”,单击该链接会显示一个用于登录的弹出框,但是我仍然能够看到该页面的所有内容登录前的页面。如何在加载页面内容之前显示此弹出框? 另外,我只想设置一个用户名和密码,如果仅提供该用户名和密码,则应显示页面。如何完成这个任务?

最佳答案

您的loginclose链接在href属性中都有javascript,它应该在onclick属性中相反。

<a onclick="login('show');">login</a>

通过将其放在 href(或任何其他与事件无关的属性)中,代码就会被执行。由于您的最后一个按钮是 javascript:login('show'); ,因此它将始终显示登录信息。

更好的是,您应该在脚本中完成所有工作。

document.getElementById('show-login').addEventListener('click', function(e) {
    e.preventDefault(); // cancel the click, but run the following code
    login('show');
});

这需要您向登录按钮添加 id 属性。

<a id="show-login">login</a>

关于javascript - javascript 中的登录弹出窗口未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40156866/

相关文章:

jquery - 使用 jquery 访问 HTML5 数据属性

javascript - 使用 Java 脚本和多维数组

javascript - 寻找隐藏和显示一些 div 的好习惯

javascript - 如何使wordpress visual composer属性复选框最初被选中

javascript - IE文档模式兼容性

jquery - h3 在淡入或淡出后移动

jQuery 查询字符串对象

JavaScript:4 个异步函数在继续之前按顺序等待彼此完成?

javascript - html 5 Web 应用程序缓存下载完整的 JavaScript 警报?

javascript - 当自定义属性不等于 x 时,通过 .class 删除 <option>