一些网页具有可以折叠子菜单的“转动”三角形控件。我想要同样的行为,但对于表单中的部分。
假设我有一个包含贷方、姓名、地址和城市输入的表格。我网站的一些用户将需要第二组这些字段。我想为大多数用户隐藏额外的字段。需要额外字段的人应该可以一键访问它们。我该怎么做?
一些网页具有可以折叠子菜单的“转动”三角形控件。我想要同样的行为,但对于表单中的部分。
假设我有一个包含贷方、姓名、地址和城市输入的表格。我网站的一些用户将需要第二组这些字段。我想为大多数用户隐藏额外的字段。需要额外字段的人应该可以一键访问它们。我该怎么做?
啊,我想你的意思是你想在你的表单上有可折叠的部分。
简而言之:
这里有一个更好的解释:How to Create a Collapsible DIV with Javascript and CSS [ Update 2013-01-27该文章不再在 Web 上提供,您可以参考此 HTML 页面的来源以获取受本文启发的应用示例]
或者,如果您使用“CSS 折叠部分”之类的词进行 Google 搜索,您会发现许多其他教程,包括超级精美的教程(例如http://xtractpro.com/articles/Animated-Collapsible-Panel.aspx)。
使用 JavaScript 隐藏/显示元素的绝对最基本的方法是设置元素的可见性属性。
给定您的示例,假设您在页面上定义了以下表单:
<form id="form1">
<fieldset id="lenderInfo">
<legend>Primary Lender</legend>
<label for="lenderName">Name</label>
<input id="lenderName" type="text" />
<br />
<label for="lenderAddress">Address</label>
<input id="lenderAddress" type="text" />
</fieldset>
<a href="#" onclick="showElement('secondaryLenderInfo');">Add Lender</a>
<fieldset id="secondaryLenderInfo" style="visibility:hidden;">
<legend>Secondary Lender</legend>
<label for="secondaryLenderName">Name</label>
<input id="secondaryLenderName" type="text" />
<br />
<label for="secondaryLenderAddress">Address</label>
<input id="secondaryLenderAddress" type="text" />
</fieldset>
</form>
这里有两点需要注意:
showElement()
将元素 id作为参数,如下所示:
function showElement(strElem) {
var oElem = document.getElementById(strElem);
oElem.style.visibility = "visible";
return false;
}
Almost every JavaScript approach is going to be doing this under the hood, but I would recommend using a framework that hides the implementation details away from you. Take a look at JQuery, and JQuery UI in order to get a much more polished transition when hiding/showing your elements.
Here's a simple css only solution that uses a checkbox:
.hideNext:not(:checked)+div {
max-height: 0;
overflow: hidden;
}
<label for="ch1">More Options</label><input id="ch1" type="checkbox" class="hideNext" />
<div>Whatever you want to hide.</div>
and then more stuff below..