我刚刚注意到了一种将输入元素放在form标签之外的有趣方法。
<html>
<!-- the form element -->
<form id="testform" method="post" action="index.asp">
<label for="text1">Text: </label>
<input type="text" id="text1" name="text1" />
<button type="submit">Submit</button>
</form>
<!--- element outside form tag -->
<label for="text2">Additional Text: </label>
<input type="text" id="text2" name="text2" form="testform" />
</html>
我只是想知道练习这种做法是否很常见。应该避免这种方法吗? 尝试谷歌搜索类似的讨论,但我真的不知道如何说这个。
答案 0 :(得分:11)
这不常见。在大多数情况下,它没有任何好处,但有一个缺点:一些旧的浏览器不支持form
属性,所以事情就不适用于它们。
始终允许input
元素之外的form
元素。如果没有form
属性,这样的元素就不会参与任何表单提交。但它可以与客户端脚本一起使用。
form
属性在支持浏览器时将元素与表单关联,就像元素在表单内部一样。这在复杂的情况下是有用的,例如,表格的一行应该包含表单的字段,另一行表格的另一行等等。你不能只在表格中包裹一行,这里的属性来拯救:你把一个form
元素放在一个行的单元格,并使用form
属性引用其他单元格中的字段中的元素。
答案 1 :(得分:3)
是的,您可以使用位于外 form
元素的输入上的form
属性,从HTML5开始执行此操作;就像你一样。
有关详细信息和示例,请参阅W3学校的HTML <input>
form Attribute。
答案 2 :(得分:1)
将它们放在那里没有任何问题,如果您使用javascript等进行操作,它们将在DOM中可用。但是当您提交表单时,您的字段值将不会出现在提交的结果中。
答案 3 :(得分:0)
是的,您可以将输入元素放在表单之外,但是如何决定如何以及在何处发布这些元素的值。