可以像这样嵌套html表单吗?
<form name="mainForm">
<form name="subForm">
</form>
</form>
那么这两种形式都可以工作吗?我的朋友在这方面遇到了问题,subForm
的一部分可以工作,而另一部分则不能。
发布于 2012-02-15 21:57:19
第二种形式将被忽略,请参阅WebKit中的snippet示例:
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;
}
发布于 2013-05-25 18:10:21
普通的html不允许你这样做。但是使用javascript你可以做到这一点。如果您使用的是javascript/jquery,那么您可以使用一个类对表单元素进行分类,然后使用serialize()来序列化您想要提交的项目子集的那些表单元素。
<form id="formid">
<input type="text" class="class1" />
<input type="text" class="class2">
</form>
然后,在javascript中,您可以执行此操作来序列化class1元素
$(".class1").serialize();
对于class2,您可以这样做
$(".class2").serialize();
对于整个表单
$("#formid").serialize();
或者简单地说
$("#formid").submit();
发布于 2013-11-13 22:51:02
另一种绕过这个问题的方法是,如果你正在使用一些服务器端脚本语言,允许你操作发布的数据,是像这样声明你的html表单:
<form>
<input name="a_name"/>
<input name="a_second_name"/>
<input name="subform[another_name]"/>
<input name="subform[another_second_name]"/>
</form>
如果您打印发布的数据(我将在这里使用PHP ),您将得到如下所示的数组:
//print_r($_POST) will output :
array(
'a_name' => 'a_name_value',
'a_second_name' => 'a_second_name_value',
'subform' => array(
'another_name' => 'a_name_value',
'another_second_name' => 'another_second_name_value',
),
);
然后你就可以像这样做了:
$my_sub_form_data = $_POST['subform'];
unset($_POST['subform']);
您的$_POST现在只有“主窗体”数据,子窗体数据存储在另一个可以随意操作的变量中。
希望这能有所帮助!
https://stackoverflow.com/questions/379610
复制相似问题