HTML:使用嵌套<form>的风险?

Bry*_*eld 4 html forms cross-browser

使用此布局是否存在任何浏览器兼容性问题

<form action="javascript:alert('error on submit outer')" onsubmit="submitOuterScriptedForm(this); return false">
  <input name="field1"/>
  <form action="javascript:alert('error on submit inner')" onsubmit="submitInnerScriptedForm(this); return false">
    <input name="field1"/>
    <button type="submit">Click here for JavaScript mini-form</button>
  </form>
  <input name="field2"/>
  <button type="submit">Click here to submit JavaScript main form</button>
</form>
Run Code Online (Sandbox Code Playgroud)

预期结果

  • 在第二个输入中按Enter键或单击第一个按钮会触发内部表单的onsubmit.
  • 在第一个或第三个输入中按Enter键或单击最后一个按钮会触发外部表单的onsubmit.

Ode*_*ded 9

它不是有效的HTML.

您不能嵌套表单标签.

DTD和规范:

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
Run Code Online (Sandbox Code Playgroud)

-(FORM)具体不允许嵌套形式.

预期结果:W3验证服务中的验证错误.

浏览器预期结果:未定义的行为.