混淆(表单属性)

时间:2018-05-24 21:54:08

标签: php html html5 forms

我对使用表单属性(Form =“”)

感到困惑

来自 MDN

  

输入最多只能与一种表格相关联。

来自 W3S

  

form属性指定一个或多个表单元素   属于。
要参考多个表格,请使用   以空格分隔的表单ID列表。

那么,我可以将输入与多个表单相关联吗?或不?  哪一个是真的?

2 个答案:

答案 0 :(得分:4)

否.. 在HTML5发布之前,form属性不存在。您需要查看DOCTYPE并做出决定。

在HTML5之前,您可以使用Javascript并使用Xhr做一些事情来实现这种行为,但实际上需要它。

我找到了示例you cited ...

Last name: <input type="text" name="lname" form="form1">

以下是HTML5表单规范中的说明: https://www.w3.org/TR/html5/sec-forms.html#element-attrdef-formelements-form

  

此功能允许作者解决缺乏支持的问题   嵌套表单元素。

     

如果可重新关联的表单关联元素具有表单属性   指定,那么该属性的值必须是表单的ID   元素所有者Document中的元素。

RFC中的其他一些评论。建议看看那里。

好文章:https://www.impressivewebs.com/html5-form-attribute/

<强>更新 在更多考虑之后没有看到任何暗示表单属性可以指定多个表单的内容。来自W3C规范的最简洁的文本支持:“form - 将控件与 a 表单元素”相关联。

答案 1 :(得分:3)

没有明确的肯定答案。它接缝我们只能说,因为在W3联盟规范中没有任何地方声明输入可以与多种形式相关联,这意味着它不能; (并且还得出结论,如CBroe所指出的那样,学校的信息应该与盐分一致)。

当我测试它时 - 使用两个带有ids“form1”和“form2”的表单,以及一个“外部”输入元素,其form-attribute设置为form =“form1 form2” - 此输入不提交任何形式。这意味着,由于form-attribute并未完全设置为一个表单id,因此它不会将其连接到任何表单。

此外,在测试中,我添加了第三种形式,其形式为id =“form1 form2”。这导致输入元素(在所有表单之外,其中form-attribute设置为form =“form1 form2”)以使用此表单提交,但不是使用带有id =“form1”的表单,也不是带有id的表单= “窗口2”。

因此,凭借我有限的知识,我敢于得出结论:

通过为其form-attribute指定空格分隔的id(或最有可能通过任何其他方式),一个输入元素不能与多个表单关联。

此问题与 Multiple form ID's in HTML5's input form attribute重复,但此处有更详细的解释。