刚遇到奇怪的事情。我有以下代码:
var SubmitHandler = function( target ){
// ..... code ...
// target is an html form
target = $( target );
// .... code ....
//send get request
$.get( target.attr( "action" ), target.serialize()+"&AjaxRequest=true", function( data ){
//add response html to page
ReplaceElement.html( data );
});
// .... code ....
好的,所以我没有看到这个代码有任何明显的错误。基本上我只是使用表单“action”属性作为URL向服务器发送jQuery get
请求,使用jQuery的serialize
函数序列化表单,并在生成的查询字符串中附加内容。发送到服务器的查询字符串如下所示:
?SortBy=e.Name&SortOrder=ASC&AjaxContent=true
除IE之外,所有浏览器都能正常使用。在IE中,查询字符串如下所示:
?&AjaxContent=true
这几乎就像IE甚至没有运行target.serialize()
功能。然而,如果我使用alert(target.serialize())
,我会看到预期的结果。
这很奇怪,但我必须添加以下变量才能在IE中使用它:
var SubmitHandler = function( target ){
// ..... code ...
// target is an html form
target = $( target );
// .... code ....
var targetSerialized = target.serialize();
//send get request
$.get( target.attr( "action" ), targetSerialized+"&AjaxContent=true", function( data ){
//add response html to page
ReplaceElement.html( data );
});
// .... code ....
有谁知道为什么会发生这种情况?
(万一你想知道,我用更详细的$.ajax
函数尝试了这个并得到了相同的结果)