2009-06-04 86 views
1

當我做一個jQuery Ajax調用來自動填充頁面加載下拉時,下拉控件被包含表中斷。我明白,如果將表寬度設置爲100%,它會解決這個問題,但在我的情況下,我不能這樣做。此代碼在FF中正常工作。這幾乎就像IE在ajax調用完成後不會「重新呈現」頁面。下面的代碼 - 我希望我有一個公共的Ajax網頁,我可以提供,因此它可以被複制,然後在文本編輯器粘貼到自己嘗試一下ajax調用後,Internet Explorer不擴展表

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script> 
</head> 
<body> 
<table border="1"> 
    <tr> 
     <td> 
      <select> 
       <option>Test 1</option> 
       <option>Test 2</option> 
       <option>Test 3</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <select id="mySelect">    
      </select> 
     </td> 
    </tr> 
</table> 

<script type="text/javascript"> 
var mySelect = $("#mySelect"); 

fillListCombo = function(json) 
{ 
    if (json) 
    { 
     mySelect.empty(); 
     $(json).each(function(i, obj) 
     { 
      var option = $("<option></option>"); 
      option.val(obj.id); 
      option.text(obj.text); 
      option.appendTo(mySelect); 
     }); 
    } 
    else 
    { 
     mySelect.find('option').remove().end().append('<option value="0">(none available)</option>').val('0'); 
    } 
} 

updateListCombo = function() 
{ 
    $.ajax(
    { 
     type: "GET", url: "http://localhost/Ajax/ListLookupPage.aspx", dataType: "json", data: 
     { 
      listkindid: "1", userid: "17" 
     }, 
     timeout: 2000, success: function(opts) 
     { 
      fillListCombo(opts); 
     }, 
     error: function(xhr, status) 
     { 
      mySelect.find('option').remove().end().append('<option value="0">(none selected)</option>').val('0'); 
     } 
    }); 
}; 

updateListCombo(); 
</script> 
</body> 
</html> 

,但我不知道。

它是如何出現在Firefox:
alt text http://i39.tinypic.com/20sfuc3.jpg
它是如何出現在IE7/8:
alt text http://i40.tinypic.com/24511rl.jpg

如何強制IE 7/8正確呈現Ajax回調完成後的任何想法?

謝謝。

回答

2

有點破解,但似乎如果你改變一個不需要的CSS屬性的選擇,它會強制更新。

$('#mySelect').css({margin: '0'}).append('<option value="0">(none available)</option>'); 

(從你的截斷的例子,但原則應該是相同的。)

我只與XP IE7測試了。

+0

哇!非常令人印象深刻。從來沒有想過要嘗試這種方法。是的,這絕對可以解決我的問題。謝謝!! – Craig 2009-06-04 17:03:18

相關問題