首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是什么: document.reservation.submit();应该做什么?

这是什么: document.reservation.submit();应该做什么?
EN

Stack Overflow用户
提问于 2015-07-27 12:35:57
回答 2查看 85关注 0票数 1

我正在重新设计一个老开发人员的代码,我正在尝试做一个预订表单。

我查看了整个代码,唯一被称为预约的东西是表单的名称和id。

形式谁是时尚:display:none .

所以一个问题有两个:首先,他应该做什么?

document.reservation.submit();,它应该得到他的名字的表格吗?

难道不是应该像document.getElementById('reservation').submit()那样吗?

我的第二个问题是:如果所有的值都被设置为display:none,它不能工作,那么如何发送表单?如果你想隐藏它们,你应该使用隐藏的属性。

我需要一些关于这些人的帮助,请:

结语理解表:

代码语言:javascript
复制
<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">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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、公开的embedformiframeimg和公开的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属性对表单字段是否提交没有任何影响;您可能在考虑字段的状态:在提交表单时,禁用的表单字段确实被排除在表单之外。

票数 5
EN

Stack Overflow用户

发布于 2015-07-27 12:41:55

显示没有或隐藏的信息总是会被发送,即使你看不到.通常我们传递一些用户不需要知道的信息,比如USER_ID=20 .

代码语言:javascript
复制
document.reservation.submit
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31653276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档