【发布时间】:2012-09-17 04:08:45
【问题描述】:
对于一个基本的 HTML 表单,我想将表单分成三个选项卡,每个选项卡将包含某些字段,并且在提交表单时我希望三个表单中的所有数据都能提交。
所以我有一个由<ul> 和<li 创建的菜单>
<ul class="subnav">
<li class="subnav0 current"><a href="javascript:showTab('tab1');">Tab1</a></li>
<li class="subnav1"><a href="javascript:showTab('tab2');">Tab2</a></li>
<li class="lastItem subnav2"><a href="javascript:showTab('tab3');">Tab3</a></li>
</ul>
在这个菜单下面,我有三个 div 代表每个选项卡:
<div class="tab1"></div>
<div class="tab2 displayNone"></div>
<div class="tab3 displayNone"></div>
输入控件元素将被放入每个选项卡 div 中。并且菜单导航栏中的 javascript 将通过调用每个 div 的 show() 和 hide() 方法来控制显示哪个选项卡。 (使用 jQuery)。
现在我的问题是:
1) 我希望能够提交整个表单(三个 div 内的所有控件)。但是,html 表单不会在 displayNone div 中提交输入控件,这意味着我只能在当前正在查看的选项卡中提交数据,而不能在其他两个选项卡中提交。
2) 我还想在 tab2 或 tab3 中初始化表单时对隐藏元素执行一些 javascript 函数。但是,由于它们是 display:none,因此 javascript 不会有任何效果。
那么有什么方法可以隐藏 div,但也可以提交表单并对其进行任何 javascript 操作?
【问题讨论】:
-
请尝试使用 jQuery UI 标签插件:jqueryui.com/demos/tabs
-
谢谢@diEcho,我知道有这样一个jQuery插件,但我想我更高兴知道是否有适合我的场景的解决方案而不是依赖库。
标签: javascript html css