在HTML中使用表单属性并将输入元素放在表单标记之外是一种好做法吗?

2022-02-24 00:00:00 input forms include html

我今天刚刚注意到一种将input元素放在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>

我只是想知道练习这样做是不是很常见。应该避免这种方法吗? 我试过在谷歌上搜索类似的讨论,但我真的不知道如何表达。


解决方案

这不是常见的做法。在大多数情况下,它没有提供任何好处,但有一个缺点:一些旧浏览器不支持form属性,因此它们无法正常工作。

始终允许form元素之外的input元素。如果这样的元素没有form属性,它就不会以任何形式参与深渊翻滚。但它可以与客户端脚本一起使用。

在支持浏览器的情况下,form属性将元素与表单相关联,就像元素位于表单内部一样。这在复杂的情况下可能很有用,例如,表格的一行应该包含表单的字段,另一表单的另一行字段等等。您不能只在表单内包装一行,在这里该属性起到了挽救作用:您将form元素放在该行的一个单元格中,然后使用form属性在其他单元格的字段中引用该元素。

相关文章