我正在重新设计一个老开发人员的代码,我正在尝试做一个预订表单。
我查看了整个代码,唯一被称为预约的东西是表单的名称和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">发布于 2015-07-27 12:38:59
document.reservation获取带有name reservation的表单的HTMLFormElement。然后调用submit提交表单(不触发submit事件)。
那为什么不让document.getElementById呢?这也是可行的,但是document.reservation可以工作,因为document对象获得自动在其上创建的各种属性,包括引用其name表单的属性。这是在§3.1.3 HTML5规范 *中介绍的(您必须向下滚动一段时间):
Document接口支持命名属性。支持的属性名称在任何时候都包括所有具有非空的name内容属性的applet、公开的embed、form、iframe、img和公开的object元素的值,以及所有d23和d25中具有非空id属性的id内容属性的值,以及具有非空id内容属性和非空id内容属性的Document中所有name元素的name内容属性的值。
这些属性的值是name或id来自的元素。
window对象还为每个具有id的元素获取属性,如在此描述
支持的属性名称在任何时候都包括以下内容,按树的顺序排列,忽略后面的重复项:
名不是空字符串的活动文档的任何子浏览上下文的浏览上下文名称,活动文档中所有具有非空name内容属性的a、applet、area、embed、form、frameset、img和object元素的值,以及活动文档中任何具有非空id内容属性的id元素的id内容属性的值。同样,这些属性的值是来自name或id的元素。
在这两种情况下,这都是HTML5规范,它标准化了大多数浏览器以前广泛使用的、但不符合标准的做法,而这种做法在野外的页面上被广泛使用。
如果所有的值都被设置为显示:没有,我很难,它不能工作,如果你想隐藏它们,你应该使用隐藏的属性.
每个问题最好问一个问题。
CSS display属性对表单字段是否提交没有任何影响;您可能在考虑字段的状态:在提交表单时,禁用的表单字段确实被排除在表单之外。
发布于 2015-07-27 12:41:55
显示没有或隐藏的信息总是会被发送,即使你看不到.通常我们传递一些用户不需要知道的信息,比如USER_ID=20 .
document.reservation.submithttps://stackoverflow.com/questions/31653276
复制相似问题