我正在使用jquery 表单插件,它使用 jquery ajax 来完成大部分工作。我们有 jquery 1.7.2
我们使用它通过 ajax 向服务器发送一个表单,并返回一个表示成功的值或返回带有验证错误的表单。
当在验证中发现错误时,我让它在 firefox 和 chrome 中工作,包含旧表单的 div 的内容被替换为有错误的新表单。
$('#FormDiv').empty().html(response);
响应如下所示:
<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 中,一切似乎都可以正常工作,不太确定那里发生了什么,如果有人可以解释这一点,他们可以得到答案