Javascript 为什么没有插入?

Javascript 为什么没有插入?,javascript,jquery,html,forms,browser,Javascript,Jquery,Html,Forms,Browser,一个简单的例子 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Title</title> <script src="jquery-2.1.4.js"></script> </head> <body> <form id="f1"> </form>

一个简单的例子

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Title</title>
    <script src="jquery-2.1.4.js"></script>
</head>
<body>
    <form id="f1">
    </form>
    <script>
        $('#f1').html(
            '<div id="outer">' +
                '<form id="f2">' +
                    '<div id="inner"></div>' +
                '</form>' +
            '</div>'
        );
    </script>
</body>
</html>
如果我们在浏览器中打开此页面,将不会看到f2表单。 为什么它会被移除

我知道,根据标准,嵌套表单是无效的,但在项目中,我正在致力于在表单中插入表单,有时是有效的,我不知道这两种情况下表单是通过.html插入的


我也尝试了innerHTML,但结果是一样的。

浏览器将自动从代码中删除嵌套表单,以调整它以满足有效标准。

您不能在表单标记中添加表单,请尝试将外部表单替换为div

$'f1'.html + + “内分区”+ + ; 标题
您正在遇到未定义的行为

注意:严禁将表单嵌套在其他表单中。嵌套可能导致表单根据所使用的浏览器以不可预测的方式运行


@HamzaAbdaoui,我想没关系。您可以将其移动到单独的文件中,但不会更改任何内容。因为您无法将表单嵌套在表单中。虽然您可以在一个HTML页面中包含多个元素,但您无法将它们嵌套,无论采用何种黑客技术,嵌套表单都不是有效的HTML,并且会在浏览器中导致问题。您需要重新评估尝试执行此操作的原因,并找到更好的解决方案。如果确实要执行此操作,这不是未定义的行为,而是无效的HTML,可能无法跨浏览器可靠工作。自担风险使用并彻底测试。避免使用使用HTML解析的方法(如innerHTML或其jQueryWrapper.HTML)将内部表单附加到DOM文档。相反,使用.innerHTML构造包含内部表单的子树,然后使用诸如appendChild之类的DOM方法将该子树添加为外部表单的子树。