隐藏包含消息的 DOM 元素并使其可见

Posted

技术标签:

【中文标题】隐藏包含消息的 DOM 元素并使其可见【英文标题】:Hidden DOM element containing the message and to make it visible 【发布时间】:2017-04-04 22:16:10 【问题描述】:

我需要使用隐藏的 DOM 元素在单击提交按钮时显示消息“请等待处理”,该元素包含该消息并使其可见,但该消息未显示。

我的表单的 html 和我的验证功能如下所示。

<form name="siteSearchForm" method=post action="<%=request.getContextPath()%>/servlet/visibilityController" onsubmit="javascript:return validate();on_load()">
    <td align="center" ><input type=submit name="siteSearchSubmit" value="SUBMIT" >&nbsp;<input type="RESET" name="clearTN" value="RESET"></td>
</form>

我在onsubmit 期间通过在表单标签上调用on_load 尝试了以下代码,但它没有显示消息

<head>
    <script type="text/javascript">
        function on_load()
            var y = document.getElementById("txtHiddenUname");
            y.type= "text";
        
    </script>
</head>

<body>
    <input type="hidden" id="txtHiddenUname" value="invalid input" />
</body>

【问题讨论】:

【参考方案1】:

还添加以下行:

y.style.display = "block";

【讨论】:

感谢您的回复,很有用【参考方案2】:

因为return语句会退出函数调用,之后什么都不会运行。您需要在退货之前添加它。

onsubmit="on_load(); return validate();"

或者你可以这样做

onsubmit="return validate() && on_load();"

但您的 on_load 函数需要返回 true。

function on_load()  return true; 

另外,您为什么要使用输入来显示消息?似乎您应该使用带有显示无/块的段落。 javascript: 在事件处理程序中不需要,并且 on_load 似乎应该在窗口加载时调用,而不是表单提交。

【讨论】:

谢谢。是否有任何替代方法抱歉我不擅长 Javascript 如果可能请提供任何代码 基本上我需要向用户显示消息“正在处理,请稍候”,所以我认为如果您提供任何其他输入会帮助我,它会更简单。 所以有一个&lt;p id="msg" style="display:none"&gt;FOO&lt;/p&gt;document.getElementById("msg").style.display = "block"; 我有点困惑,请告诉我在哪里添加是这样的 是否正确。我需要输入 return true 请纠正我

以上是关于隐藏包含消息的 DOM 元素并使其可见的主要内容,如果未能解决你的问题,请参考以下文章

JQuery中的DOM动画

jQuery 如何获取到隐藏元素的高度?或者在dom元素可见性改变时能触发个事件也行。

隐藏点击表上的行

Select2 多框占位符未在隐藏时显示,然后使其可见

如何监听dom元素的显示隐藏事件

Rails html 视图,定位一个元素并使其仅对一个视图不可见。