【问题标题】:Is it possible to wrap html form elements in multiple form tags?是否可以将 html 表单元素包装在多个表单标签中?
【发布时间】:2012-03-15 01:14:14
【问题描述】:

在 HTML 页面中将表单的每个元素都包裹在 <form> 标记中会不会是错误的?很好奇为什么会出错:

基本上我必须介绍两种形式(form1form2),其中一些元素与第一种相关联,而另一些与第二种相关联。布局必须完全基于表格,因为两种形式的元素都是整个页面都是我写的(根据http://validator.w3.org/check,代码有效):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
 <html>
<head>
   <title>Title of the document</title>
 </head>

 <body>
<table border="1">
    <tr>
        <td>
            <form name="form1" method="POST" action="via.php">
            Enter the first form text here!:    <input type="text" name="first"/>
            </form>
        </td>
        <td rowspan="2">
            <form name="form2" method="POST" action="via.php">
                Enter the second form text here!:<input type="text" name="second"/>
            </form>

            <form name="form1" method="POST" action="via.php">
            Enter the first form text here!:<input type="text" name="first"/>
            </form>
        </td>
  </tr>
  <tr>
        <td>
        <form name="form1" method="POST" action="via.php">
            <input type="submit" name="form1submit" value="submit1"/>
        </form>
        <form name="form12" method="POST" action="via.php">
            <input type="submit" name="form2submit" value="submit2"/>
        </form>
        </td>


  </tr>
</table>

【问题讨论】:

    标签: html forms html-table tablelayout


    【解决方案1】:

    不允许嵌套表格,根据the specification

    鉴于w3 validator 中的此输入:

    <!DOCTYPE html><html><head><title>tit</title></head><body>
    <form action="x">
        <form action="x">
            <input type="submit" value="x"> <!-- Submitting.. Which form...?-->
        </form>
    </form>    
    </body></html>
    

    w3 验证器说:

    【讨论】:

    • 是的,但我没有声明嵌套表单,我只是包装相同表单的元素(文本框、提交按钮等),我试图通过在表单标签中使用 name 变量来对它们进行分组。
    • @Student 我看到了你的问题。这是错误,因为在提交表单时,活动表单中的输入元素被提交。也就是说,包含发起提交的元素的表单。
    • 所以如果我有一个表单
      我会提交哪些数据点击提交按钮?我的意思是所有三个表单都使用 name 变量指向同一个表单?还是我错了?
    • 允许有多个 &lt;form&gt; 元素。但是,您一次只能提交一个 HTML 表单。在评论的情况下,服务器接收到?firsttextbox=...?secondtextbox=...,但不是两者都
    • 感谢@ROB W 的回答!
    【解决方案2】:

    问题似乎是“一个 HTML 文档可以包含多个表单吗?”正确答案是“是的,只要它们没有嵌套。”这些表单将完全不同,每个表单都有自己的一组字段。

    【讨论】:

    • 实际上是“我可以有几个表单包装元素的实例吗” :) 从代码中可以看出,有两个表单 form1 和 form2,它们是这些表单的多个实例(显然具有相同名称的变量)包装元素。
    • @Student,不,您的示例有四种形式。对两种形式使用相同的name 属性可能会导致奇怪的效果,但它不会将它们变成一种形式。 (在 HTML5 中,您可以在功能上将任何表单之外的表单字段元素绑定到给定的表单中,但这是一个不同的问题,可能不实用。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多