提交嵌套表单,奇怪的行为

ada*_*ign 1 html javascript forms javascript-events nested-forms

我有一个带有表单的广告横幅,第三方网站所有者使用此横幅抓取此代码,并在该网站上显示此横幅.

由于一些使用此横幅的<form>网站在整个网站上都有包装,我发现横幅表单不提交,而是提交外部表单.

这是代码:

  <form onSubmit="return alert('outer form submitted')">

    <!-- only if i add this empty form it submits the inner -->
         <form></form>
    <!-- End Empty form -->

    <!-- inner form -->
      <form onSubmit="return alert('inner form submitted')" > 
           <input type="submit" /> 
      </form> 
    <!--end  inner form -->

 </form> 
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,只有我<form> 在内部之前添加一个空,<form>它才会提醒(提交)内部,否则它会提交外部.

为具有表单的网站编写横幅广告的最佳方法是什么?

Wri*_*ken 9

在<form>中有一个<form>是格式错误的HTML,所有的赌注都是关闭任何浏览器/用户代理/ javascript-engine/dom实现将如何处理它.不同访客之间的结果会有很大差异或相同.只是在<form>中没有<form>.期间:)

您观察到的行为中最有可能发生的情况:在表单中启动<form>标记可能被"丢弃"为无效,包括任何操作/事件(但可能不是<input>),第一个</ form>关闭'main '形式.

  • (+ 1)Wrikken已经死了.只是不要这样做. (3认同)