是否提交表格 tag has no name attribute (and child elements within form do have name attribute?

问题描述 投票:1回答:4

如果我没有在tag中指定name属性,那么表单中的所有内容是否都已成功提交?

我知道没有名字不会在GET或POST中提交

html html5
4个回答
1
投票

Submitting a <form>

“如果标签没有名称属性,表单是否已提交(表单中的子元素是否具有name属性?”

  • 是的,带有[name]并嵌套在<form>2标签中的表单controls1的所有值都提交,但有一个例外:<output>。如果你想发送一个<output>的值,只需将其复制到<input type='hidden'>
  • 表单不需要[name]属性来发送其子标签或其自身的值(因为表单实际上没有值属性)。
  • 如果您有一组具有相同[name]的单选按钮 - 仅提交所选单选按钮的值。
  • <button>标签在嵌套在表单中时会有一个默认行为,它将充当<input type="submit">。所以请记住将type="button"添加到<button>s,这只是触发点击事件而不是提交事件的按钮。
  • 如果在表单中设置焦点并单击enter(返回Mac)键,则还会触发提交事件。

1提交时发送<form> /值的[name]标签的儿童标签称为successful controls。 2如果表单控件不是表单的子表单,则可以通过分配控件form="FORMID"来启用关联


演示

<form>

  • [action]:发送到实时测试服务器
  • [target]:显示服务器响应的iframe的[name]
  • [onchange]:每当用户在表单上留下数据时 - <output>显示所选单选按钮的值,<output>也将值分配给隐藏输入。

#ui {
  width: 300px;
}

#out,
button,
[type=submit] {
  float: right;
}
<form id='main' action='https://httpbin.org/post' method='post' target='response' onchange='out.value = rad.value; inv.value = out.value; return false'>
  <fieldset id='ui'>
    <legend>Submitting a Form</legend>
    <fieldset>
      <input id='xA' name='rad' type='radio' value='A'> A
      <input id='xB' name='rad' type='radio' value='B'> B
      <input id='xC' name='rad' type='radio' value='C'> C
      <input id='xD' name='rad' type='radio' value='D'> D
      <output id='out' name='out' for='xA xB xC xD inv'></output>
      <input id='inv' name='inv' type='hidden'>
    </fieldset>
    <button>&lt;button&gt;</button>
    <input type='submit'>
  </fieldset>
</form>
<iframe name='response'></iframe>

1
投票

是的表格即使没有名字也会提交。检查下面的代码,它会解释你。

点击提交按钮表格即可提交,即使它没有名称,动作等提交按钮也足以提交表格。

如果你没有提到方法,那么默认提交类型是“获取”方法

<form action='/cloud' meathod="get">
<input type ="submit" value="submit"/>
</form>

1
投票

是!

仅供参考 - 在HTML5中,不推荐在表单上使用名称属性。见the MDN note about it

表格的名称。在HTML 4中,不推荐使用它(应该使用id)。它必须在文档中的表单中是唯一的,而不仅仅是HTML 5中的空字符串。

编辑:

  1. 从移动设备上的早期帖子中修正了拼写错误,这似乎是我建议<input>名称属性被弃用。
  2. MDN增加了引用

0
投票

是的,你有形式方法,如:

<form method="post OR get">
</form>

并且还提供元素名称,因为元素名称用于发布该元素的值。

© www.soinside.com 2019 - 2024. All rights reserved.