Yud*_* Li 12 html javascript css
对于基本的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>
Run Code Online (Sandbox Code Playgroud)
在这个菜单下面,我有三个代表每个标签的div:
<div class="tab1"></div>
<div class="tab2 displayNone"></div>
<div class="tab3 displayNone"></div>
Run Code Online (Sandbox Code Playgroud)
输入控件元素将放入每个制表符div中.菜单导航栏中的javascript将控制通过每个div的调用show()和hide()方法显示哪个选项卡.(使用jQuery).
现在我的问题是:
1)我希望能够提交整个表格(三个div中的所有控件).但是,html表单不会在displayNone div中提交输入控件,这意味着我只能在我当前正在查看的选项卡中提交数据,而不能提交其他两个选项卡.
2)我还想在tab2或tab3中初始化表单时对hide元素执行一些javascript函数.但是,因为它们是display:none,所以javascript不会有任何影响.
那么有什么方法我可以以某种方式隐藏div,但也能够提交表单并对其进行任何javascript操作?
Dan*_*ell 14
根据W3C显示:可能仍然没有控件发送到服务器,因为它们被认为是成功的控件
17.13.2成功控制
成功的控制对于提交是"有效的".每个成功的控件都将其控件名称与其当前值配对,作为提交的表单数据集的一部分.必须在FORM元素中定义成功的控件,并且必须具有控件名称.
然而:
- 已禁用的控件无法成功.
- 如果表单包含多个提交按钮,则只有激活的提交按钮成功.
- 所有"打开"复选框都可能成功.
- 对于共享相同name属性值的单选按钮,只有"on"单选按钮可能成功.
- 对于菜单,控件名称由SELECT元素提供,值由OPTION元素提供.只有选定的选项可能会成功.
- 如果未选择任何选项,则控件不会成功,并且在提交表单时,不会将名称或任何值提交给服务器.
- 文件选择的当前值是一个或多个文件名的列表.提交表单后,每个文件的内容将与其余表单数据一起提交.文件内容根据表单的内容类型打包.
- 对象控件的当前值由对象的实现决定.
如果控件没有当前值
提交表单时,用户代理不需要将其视为成功控件.
此外,用户代理不应该认为以下控件成功:
重置按钮.已设置declare属性的OBJECT元素.由于样式表设置而未呈现的隐藏控件和控件仍可能成功.
例如:
<FORM action="..." method="post">
<P>
<INPUT type="password" style="display:none"
name="invisible-password"
value="mypassword">
</FORM>
Run Code Online (Sandbox Code Playgroud)
仍然会使一个值与名称"invisible-password"配对并随表单一起提交.
在任何情况下,如果这似乎不起作用,为什么不在每个表单上尝试jQuery serialize()或serializeArray()并连接值并将它们ajax回服务器.
| 归档时间: |
|
| 查看次数: |
27039 次 |
| 最近记录: |