javascript - 无法使用 JavaScript 隐藏 HTML div

标签 javascript html css jsp servlets

我有一个带有以下登录表单代码的 JSP:

<c:if test="${requestScope.loginFailed == true}">
    <script>
        show('login-failed');
    </script>
</c:if>
<c:if test="${sessionScope.userLoggedIn == true}">
    <script>
        show('welcome');
        hide('login-table');
    </script>
</c:if>

<div id="welcome" style="display: none;">
    <p style="color: green">Welcome ${sessionScope.user.userName}</p>
</div>

<div id="login-failed" style="display: none;">
    <p style="color: red">Invalid UserName/Password!</p>
</div>

<div id="login">
.........................
....actual login form....
.........................
</div>

在我编写的 JavaScript 代码中

function show(id) {
    document.getElementById(id).style.display = 'block';
}

function hide(id) {
    document.getElementById(id).style.display = 'none';
}

但是,即使用户登录并且 userLoggedIn属性位于 sessionScope 中即使 <c:if>测试成功,如果我无法隐藏 login分区谁能指导我?

最佳答案

showhide 函数在它们影响的元素之前被调用

您应该将脚本移动到这些元素之后(更简单),或者将它们的执行推迟到页面末尾(稍微复杂一些,但通常被认为“更正确”)。

关于javascript - 无法使用 JavaScript 隐藏 HTML div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546032/

相关文章:

javascript - 根据从下拉列表中选择的值过滤列表不起作用

html - Flexbox - 显示页眉和页脚

html - 无法将单选按钮值发送到 SQL

javascript - 如何在 javascript 中重命名从 window.open() 下载的文件?

html - 移动键盘上方的位置元素

javascript - 使用纯 JavaScript 将十字符号拖放到网格中的框中?

javascript - 为什么我的 JQuery 推送菜单突然不工作了?

html - 如何向此导航栏添加下拉菜单?

javascript - 设置替代 Node.js 服务以在本地与 Parse Server 通信

javascript - 根据src值选择iframe并更改