gpt4 book ai didi

jquery ajax 切断 IE 中的响应

转载 作者:行者123 更新时间:2023-12-01 04:20:32 27 4
gpt4 key购买 nike

我正在使用jquery form plugin它使用 jquery ajax 来完成大部分工作。我们有 jquery 1.7.2

我们使用它通过 ajax 向服务器发送表单,并返回指示成功的值或返回带有验证错误的表单。

我让它在 Firefox 和 Chrome 中工作,当在验证中发现错误时,包含旧表单的 div 内容将被替换为有错误的新表单。

$('#FormDiv').empty().html(响应);

响应将类似于以下内容:

<form action="/MyForm/Edit" id="MyForm" method="post"><input id="Id" name="Id" type="hidden" value="" />
<input id="PlantId" name="PlantId" type="hidden" value="1" />
<table>
<tr><td class="field">
ID
</td>
<td>
<input class="required" id="MyId" name="MyName" type="text" value="JP001" />

</td>
<td class="field">Description</td>
<td><input class="required" id="Description" name="Description" type="text" value="" />
</tr>
<tr>
<td class="field">Created by</td>
<td>Joe Bloggs</td>
<td class="field">Create date</td>
<td>15/06/2012</td>
</tr>
</table>
</form>

在 IE 中调试,我可以看到 ajax 调用实际上在其返回主体中包含此内容,但是我的方法的参数正在删除外部表单的开始和结束标记,因此本质上它只是一个表格。

我尝试了一些不同的方法来尝试解决这个问题,包括将 processData 设置为 false(不确定这是否真的会影响它)并将 returnType 设置为“text”和“html”,但没有一个真正有帮助。

有什么想法吗?

<小时/>

事实证明,如果我将表单包装在 div 中,一切似乎都正常,不太确定那里发生了什么,如果有人能解释这一点,他们就能得到答案

最佳答案

这不是 jQuery 错误。

这是一个不太知名的 Javascript“功能”

显然 FF3 和 IE6+(也许还有其他)中的innerHTML 不喜欢将表单标记作为innerHTML 的一部分。如果你愿意,你可以测试一下:

<div id="test">
<form>
<input>
</form>
</div>

<script>
window.onload=document.getElementById('test').innerHTML = "<form><input type="hidden" name="blah"></form>";
</script>



Result:

<div id="test">
<input type="hidden" name="blah">
</div>

不太清楚为什么,但这就是他们实现它的方式。

关于jquery ajax 切断 IE 中的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11043693/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com