ページの読み込み時にドロップダウンを自動入力する jquery ajax 呼び出しを行うと、ドロップダウン コントロールが含まれているテーブルによって切断されます。テーブルの幅を 100% に設定するとこれが修正されることは理解していますが、私の場合はそれができません。このコードは FF で正常に動作します。ajax呼び出しが完了した後、IEがページを「再レンダリング」しないようです。これがコードです -
<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>
Ajax の公開ページを提供して、それをコピーしてテキスト エディターに貼り付けて自分で試すことができればよかったのですが、そうではありません。
Firefox での表示
方法: IE7/8 での表示方法:
ajax コールバックの完了後に IE 7/8 を強制的に正しくレンダリングする方法について何かアイデアはありますか?
ありがとう。