这样嵌套html表单可能吗
<form name="mainForm">
<form name="subForm">
</form>
</form>
这样两种形式都能起作用? 我的朋友在这方面遇到了问题,子窗体
的一部分可以工作,而另一部分不能工作。
一言以蔽之,没有。 在一个页面中可以有几个窗体,但它们不应该嵌套。
来自html5工作草案:
4.10.3表单
元素
内容模型:
流内容,但没有窗体元素后代。
我遇到了一个类似的问题,我知道这并不是问题的答案,但它可以对有这种问题的人有所帮助:
如果需要将两个或更多形式的元素放在给定的序列中,HTML5>; form
属性可以是解决方案。
请访问http://www.w3schools.com/tags/att_input_form.asp:
元素属于哪个
元素。 此属性的值必须是同一文档中
元素的id属性。方案:
实施:
<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;
}