我正在修改一个旧开发人员的代码,我正在尝试做一个预订表格。
我已经查看了整个代码,唯一称为保留的是表单的名称和ID。
形成谁是时尚的:display:none
...
所以两个问题合二为一:首先到底应该做什么
document.reservation.submit();
是否应该以他的名字获得表格?
不应该是像document.getElementById('reservation').submit()
这样的东西吗?
我的第二个问题是:如果所有值都设置为 display:none
我很难工作,如果您想隐藏它们,您应该使用隐藏属性,如何发送表单......
我需要一些帮助,请:)
投注者理解形式:
<form name='reservation' action='http://xxxx/reservationFormAction.to' method="POST" id="reservation">
<input type="hidden" id="productLive" name="product" value="{$product.info.code}"/>
<input type="hidden" name="complementaryParameters" value=""/>
<input type="text" name="depCityCode" id="depCityCode" style="display:none" />
<input type="text" name="dateDep" id="dateDep" style="display:none" />
<input type="text" name="nightDuration" id="nightDuration" style="display:none" />
<input type="text" name="dayDuration" id="dayDuration" style="display:none" />
<input type="text" name="provider" value="{$product.tourOperator.code}" style="display:none" />
<input type="text" id="toProduct" name="toCode" value="{$product.info.toProductCode}" style="display:none" />
<input type="text" name="catalogCode" value="{$product.info.code}" style="display:none" />
{if $ecall}
<input type="text" name="reservationProfileChannelCode" value="ECALL" style="display:none" />
{else}
<input type="text" name="reservationProfileChannelCode" value="ADV" style="display:none" />
{/if}
<input type="text" name="nbAdults" id="nbAdults" style="display:none" />
<input type="text" name="nbChildren" id="nbChildren" style="display:none" />
<input type="text" name="nbBabies" id="nbBabies" style="display:none" />
<input type="text" name="productUrl" id="productUrl" style="display:none" value="http://www.xxxx.com/{$product.slug}_{$product.info.code}.html" />
<input type="text" name="homeUrl" id="homeUrl" style="display:none" value="http://www.xxxx.com" />
<span id="ageChild" style="display:none"></span>
<div class="update-search clearfix">
document.reservation
获取带有name
reservation
的表单的HTMLFormElement
。然后调用 submit
提交表单(不触发 submit
事件(。
那么为什么不document.getElementById
呢?这也行得通,但document.reservation
有效,因为document
对象会自动获得在其上创建的各种属性,包括通过其name
引用表单的属性。这在HTML5规范的§3.1.3中有所介绍*(您必须向下滚动一点(:
Document
接口支持命名属性。支持的属性名称随时由Document
中具有非空name
内容属性的所有applet
、公开embed
、form
、iframe
、img
和公开object
元素的name
内容属性的值组成,以及Document
中具有非空id
的所有applet
和公开object
元素的id
内容属性的值 内容属性,以及Document
中同时具有非空name
内容属性和非空id
内容属性的所有img
元素的id
内容属性的值。
这些属性的值是name
或id
来自的元素。
window
对象还获取每个带有id
元素的属性,如下所述:
支持的属性名称随时按树顺序包含以下内容,忽略后面的重复项:
- 名称不是空字符串的活动文档的任何子浏览上下文的浏览上下文名称,
- 活动文档中具有非空
name
内容属性的所有a
、applet
、area
、embed
、form
、frameset
、img
和object
元素的name
内容属性的值,以及- 活动文档中具有非空
id
内容属性的任何 HTML 元素的id
内容属性的值。
其中,这些属性的值再次是name
或id
来自的元素。
这两种情况下,这都是HTML5规范,标准化了大多数浏览器以前广泛传播但非标准的做法,这种做法在野外的页面上被广泛使用。
<小时 />如果所有值都设置为显示,如何发送表单:无 我很难它不起作用,如果您想隐藏它们,则应使用隐藏属性...
最好每个问题问一个问题。
CSS display
属性对是否提交表单域完全没有影响;您可能正在考虑该域的disabled
状态:禁用的表单域在提交时确实被排除在表单之外。
或隐藏信息将始终发送,即使您看不到......通常我们会传递一些用户不需要知道的信息,例如 USER_ID=20 .....---- 和
document.reservation.submit
-------提交名称="预订"的表单