2011-12-01 45 views
4

有了這個,我列出了我的代碼在所有瀏覽器中都能正常工作,但在IE中卻沒有。我搜索堆棧溢出的解決方案仍然無法修復。請能有人幫我請 $(本).serialize()在IEJquery序列化不能只在IE上工作

返回空
$('Form#UserTripSearch').live('submit',function() 
{ 
    $('#NavDetailHead12').html(HugeLoading);// for loader image 
    alert($(this).serialize()); 

//需要返回=>類型= 1個& sortby =遞減&狀態=支付&名=彼得

var fullurl = $(this).attr('action')+'/'+$(this).serialize(); 
    fullurl1= fullurl.replace(/&/g, "/"); 
    fullurl2= fullurl1.replace(/=/g, ":"); 
    // fullurl2 => sitename.com/type:1/sortby:desc/status:paid/name:peter 
    $.ajax({ 
      type: "GET", 
      url: fullurl2, 
      data: "ajax=true", 
      success: function(data) 
      { 
       $('#NavDetailHead12').html(data); 
      } 
     }); 

    return false; 
}); 

HTML代碼:

<form action="sitename/search" method="get" id="UserTripSearch">    
    <select id="UserType" name="type"> 
     <option value="1">User</option> 
     <option value="2">Member</option> 
     <option selected="selected" value="3">Non Member</option> 
    </select> 
    ..... 
    <input type="text" id="UserName" placeholder="First name, Username" class="TextfiledCommon" name="name">    
     <div style=" float:left">    
      <span class="button"> 
       <span> 
        <input type="submit" value="Search" id="button" name="button"> 
       </span> 
      </span> 
     </div> 
</form> 

注:我的HTML是很好..

+1

你可以將問題隔離到小提琴嗎?沒有html,這裏真的沒什麼好說的。例如,http://jsfiddle.net/KGa8q/4/在IE中正常工作。 – Sinetheta

+0

任何特定的IE版本?還有拋出的任何錯誤? – Jakub

+0

IE所有版本...不會引發任何錯誤。通過AJAX在IE中正確提交...但是序列化顯示空值。 – AnNaMaLaI

回答

1
$('Form#UserTripSearch').live('submit',function() 
{ 
    formdata = $(this).serialize(); 
    alert(formdata); 
    $('#NavDetailHead12').html(HugeLoading);// for loader image 
.......... 
............. 
................ 

嘗試上面的代碼,它應該工作

您正在嘗試更換後的DOM序列化。由於預期的數據不存在,這應該是問題。試試這個:)

+0

由於地塊現在其工作細..我首先顯示加載器,然後序列化,所以只能在IE中不工作 – AnNaMaLaI

0

請檢查在Fiddle Link 答案這是現在的工作很好..

2

jQuery的對IE 10(標準/ Quirks模式),該.serialize()和.serizlizeArray的bug ()不能序列化表單數據。

<div id="showRole"> 
    <form> 
     <input name="roleName" type="text" /> 
     <input name="des" type="text" /> 
    </form> 
</div> 

修復的方法是:

var data = $("#showRole input").serialize(); 

使用div的ID,以引用的形式和序列化數據。

該IE只是改變DOM樹和jQuery不能獲取元素。