使用form属性并将输入元素放在HTML中的form标签之外是一种好习惯吗?

时间:2014-11-18 19:19:56

标签: html forms input include

我刚刚注意到了一种将输入元素放在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>

我只是想知道练习这种做法是否很常见。应该避免这种方法吗? 尝试谷歌搜索类似的讨论,但我真的不知道如何说这个。

4 个答案:

答案 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)

是的,您可以将输入元素放在表单之外,但是如何决定如何以及在何处发布这些元素的值。