是否有效的html具有以下内容:
因此,当您提交"b"时,您只能获得内部表单中的字段.当您提交"a"时,您将获得所有字段减去"b"中的字段.
如果不可能,这种情况有哪些变通方法?
答:它不是有效的HTML也不是XHTML
在官方的W3C XHTML规范中,B节"元素禁止"声明:
"form must not contain other form elements."
http://www.w3.org/TR/xhtml1/#prohibitions
至于旧的HTML 3.2规范,FORMS元素的部分说明:
"每个表单都必须包含在FORM元素中.单个文档中可以有多个表单,但FORM元素不能嵌套."
B. 解决方法
有一些使用JavaScript的解决方法,无需嵌套表单标记.
"如何创建嵌套表单." (尽管标题不是嵌套的表单标签,但是JavaScript解决方法).
StackOverflow问题的答案
注意: 虽然可以通过脚本操纵DOM来欺骗W3C Validators传递页面,但它仍然不是合法的HTML.使用此类方法的问题在于,现在无法跨浏览器保证代码的行为.(因为它不标准)
如果有人在这里找到这篇文章是一个很好的解决方案,而不需要JS.使用具有不同名称属性的两个提交按钮检查您的服务器语言,其中按下了提交按钮,因为其中只有一个将被发送到服务器.
如果你使用php,服务器端可能看起来像这样:
HTML 4.x和HTML5禁止嵌套表单,但HTML5将允许使用"表单"属性("表单所有者")的变通方法.
对于HTML 4.x,您可以:
使用仅包含隐藏字段和JavaScript的额外表单来设置其输入并提交表单.
使用CSS排列几个HTML表单看起来像一个单独的实体 - 但我认为这太难了.
正如其他人所说,它不是有效的HTML.
这听起来像是你这样做是为了将形式在视觉上彼此定位.如果是这种情况,只需做两个单独的表单并使用CSS来定位它们.
不,HTML规范声明没有FORM
元素应该包含另一个FORM
元素.
而是在表单的action属性中使用自定义javascript方法!
例如
通过将HTML代码输入W3验证器,您可以非常轻松地回答自己的问题.(它具有文本输入字段,您甚至不必将代码放在服务器上......)
(不,它不会验证.)
一种可能性是在外部形式中有一个iframe.iframe包含内部表单.确保使用
iframe的head标记内的标记使表单作为主页的一部分.