在执行ajax callM时,我得到了IE和FF的奇怪行为; Chrome符合我的预期;)
在Grails中,我使用<g:formRemote/>
标记,结果为以下代码:
<form onsubmit="jQuery.ajax({type:'POST',
data:jQuery(this).serialize(),
url:'/url/morUrl',
success:function(data,textStatus){},
error:function(XMLHttpRequest,textStatus,errorThrown){}
complete:function(XMLHttpRequest,textStatus){performAction(XMLHttpRequest)}
});return false"
method="POST"
action="/url/morUrl"
name="tmpForm"
asynchronous="false"
id="tmpForm">`
在所有经过测试的浏览器中,ajac调用都完成得很好,并到达了
complete:function(XMLHttpRequest,textStatus){performAction(XMLHttpRequest)}
回调,该回调也表现良好。之后,只有FF和IE做一些奇怪的事情,并跳过整个DOM Modell,只留下一个简单的“false” 作为内容。
我发现,附加到Ajax调用
return false
的<form onsubmit="jQuery.ajax({ ... ... });**return false**"
对此行为负责。return false
出现在我所有的ajax调用中,但仅在这里会导致这种freekin结果。.ajax调用返回一些JSON,其中包含一些新的HTML,该HTML用于替换performAction(XMLHttpRequest)
回调中的div层。有什么想法为什么IE和FF会做这种奇怪的事情?
有谁有类似的问题吗?和/或可行的解决方案?
问候,
亚历克斯
最佳答案
事实证明,提交表单的链接实际上是使用href=javascript:tmpForm.onsubmit();
表示法的。
IE和FF使用了字符串“javascript:tmpForm.onsubmit();”作为新文档URl并对其进行验证(将结果作为新内容发布),而Chrome刚刚执行了JS...。
似乎是我的失败;)
关于jquery - 在Ajax调用后,IE和FF中的DOM损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3767731/