IE <= 8从AJAX接收时删除<form>标记

bra*_*don 9 ajax jquery internet-explorer

我正在进行AJAX POST调用以获取一些HTML.我把那个HTML并将其注入DOM.除了IE <= 8之外,每个浏览器中的一切都运行良好和花花公子.似乎IE正在解析传入的HTML,因为当我将其记录到控制台/警告它时,标签是大写的.

它正在删除的行:

<form class="uniForm" enctype="multipart/form-data" action="/profile/editprofile/" method="post">
Run Code Online (Sandbox Code Playgroud)

非常奇怪,因为结束标记在那里,但开始标记不是.该调用是一个标准的jQuery POST($ .post()).

更新:

结束放弃并将其放入嵌入式textarea并重新注入DOM:

<!--[if lt IE 9]>
<textarea class="ieHackTextArea">
<!--[if lt IE 9]>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

... 别的地方 ...

if ($.browser.msie && parseFloat($.browser.version) < 9) {
    ui.panel.innerHTML = $(".ieHackTextArea").val(); // jQuery injection doesn't work
}
Run Code Online (Sandbox Code Playgroud)

小智 12

我今天遇到了完全相同的问题并设法通过<pre></pre>在之前插入一个空的权利来修复它<form>,它以某种方式停止IE8(没有在其他版本中测试)从删除<form>.

  • 一整天都在和这个人打架,之前的情况是将它包装在一个div中工作但是这次它没有,在这次做了一次治疗之前放了一个空的预备,非常感谢你! (2认同)

小智 1

您可以尝试将所有表格包装成一个<div>,看看是否效果更好。

我在一个对象上遇到了同样的问题<input>,这是我的解决方案,以确保它在 IE8 中正常工作。