提问者:小点点

你能嵌套html表单吗?


这样嵌套html表单可能吗

<form name="mainForm">
  <form name="subForm">
  </form>
</form>

这样两种形式都能起作用? 我的朋友在这方面遇到了问题,子窗体的一部分可以工作,而另一部分不能工作。


共3个答案

匿名用户

一言以蔽之,没有。 在一个页面中可以有几个窗体,但它们不应该嵌套。

来自html5工作草案:

4.10.3表单元素

内容模型:

流内容,但没有窗体元素后代。

匿名用户

我遇到了一个类似的问题,我知道这并不是问题的答案,但它可以对有这种问题的人有所帮助:
如果需要将两个或更多形式的元素放在给定的序列中,HTML5>; form属性可以是解决方案。

请访问http://www.w3schools.com/tags/att_input_form.asp:

  1. 表单属性在HTML5中是新的。
  2. 指定元素属于哪个
    元素。 此属性的值必须是同一文档中元素的id属性。

方案:

  • INPUT_FORM1_N1
  • INPUT_FORM2_N1
  • input_form1_n2
  • input_form2_n2

实施:

<form id="Form1" action="Action1.php" method="post"></form>
<form id="Form2" action="Action2.php" method="post"></form>

<input type="text" name="input_Form1_n1" form="Form1" />
<input type="text" name="input_Form2_n1" form="Form2" />
<input type="text" name="input_Form1_n2" form="Form1" />
<input type="text" name="input_Form2_n2" form="Form2" />

<input type="submit" name="button1" value="buttonVal1" form="Form1" />
<input type="submit" name="button2" value="buttonVal2" form="Form2" />

在这里你会发现浏览器的兼容性。

匿名用户

第二种形式将被忽略,请参见WebKit的代码片段,例如:

bool HTMLParser::formCreateErrorCheck(Token* t, RefPtr<Node>& result)
{
    // Only create a new form if we're not already inside one.
    // This is consistent with other browsers' behavior.
    if (!m_currentFormElement) {
        m_currentFormElement = new HTMLFormElement(formTag, m_document);
        result = m_currentFormElement;
        pCloserCreateErrorCheck(t, result);
    }
    return false;
}

相关问题