2010-07-15 8 views
0

J'ai une selectbox dynamiquement remplie avec un appel Ajax. L'utilisateur entre un code postal dans une zone de texte, puis la zone de sélection est remplie de villes dans ce code postal. Mon problème est que la selectbox commence vide mais centré correctement. Une fois qu'il est rempli dynamiquement à partir de la réponse Ajax, IE étend simplement la boîte de sélection vers la droite et ne la recentre pas en fonction de la nouvelle largeur. Firefox et Chrome fonctionnent bien. J'utilise IE7 pour tester. Voici le code ...Dynamic Selectbox ne se centre pas correctement dans IE7

<table width="400" cellspacing="0" cellpadding="2" border="0"> 
<tr> 
    <td align="center" colspan="2" class="greyheader">Location 
    Information</td> 
</tr> 
<tr> 
    <td colspan="2" align="center" class="grey"><span class="pagetitle1">&gt;&nbsp;</span>Please 
    use only United States, Puerto Rico or Canada zip codes</td> 
</tr> 
<tr bgcolor="#E1E1E1"> 
    <td width="200" align="center"><b><u>Origin Zip Code</u></b></td> 
    <td width="200" align="center"><b><u>Destination Zip Code</u></b></td> 
</tr> 
<tr bgcolor="#E1E1E1"> 
    <td width="200" align="center"> 
    <div id="czipS" class="shipperSpecific"> 
     &nbsp; 
    </div> 
    <div class="consigneeSpecific"> 
    <center> 
    <input size="7" type="text" autocomplete="off" maxlength="7" 
    name="originZip" id="originZip" onkeypress="return handleEnter(this,event);"/> 
    </center> 
    </div> 
    </td> 
    <td width="200" align="center"> 
    <div id="czipC" class="consigneeSpecific"> 
    &nbsp; 
    </div> 
    <div class="shipperSpecific"> 
    <center> 
    <input size="7" type="text" autocomplete="off" maxlength="7" 
    name="destZip" id="destZip" onkeypress="return handleEnter(this,event);" /> 
    </center> 
    </div> 
    </td> 
</tr> 
<tr bgcolor="#E1E1E1"> 
    <td width="200" align="center"> 
    <div class="consigneeSpecific"> 
    <select id="originCity" name="originCity" /> 
    </div> 
    </td> 
    <td width="200" align="center"> 
    <div class="shipperSpecific"> 
    <select name="destCity" id="destCity" /> 
    </div> 
    </td> 
</tr> 
</table> 

Répondre

0

Je pourrais mieux aider si j'avais vu le code ajax et l'insertion.

Essayez de rétablir la classe d'alignement au centre dans la zone de sélection après l'insertion. Souvent, cela déclenche IE pour calculer les choses à nouveau.

Quelque chose comme ça (jquery):

$('#destCity').removeClass('alignCenter').addClass('alignCenter'); 
+0

Merci. J'ai fait quelque chose de similaire mais avec prototype au lieu de jquery. –