J'ai une boîte de sélection standard que je remplis à l'aide de jquery en ajoutant des options, mais pour une raison quelconque, IE9 n'affiche que le premier caractère de l'option sélectionnée. Inutile de dire que cela fonctionne parfaitement dans FireFox et Chrome, mais je dois supporter IE9. J'ai essayé les modes de compatibilité IE9, mais cela n'a fait aucune différence, pas plus que le style de la sélection ou de l'option.
Quelqu'un a-t-il déjà rencontré ce problème ? Quelle en est la cause ? Comment l'avez-vous résolu ?
Exemple de code simplifié :
<select id="selectCCY" ValueColumn="ccyID" DisplayColumn="ccySymbol" ></select>
$.each(res.result, function (key, value) {
$('#selectCCY').append('<option value="' + value[$('#selectCCY').attr('ValueColumn')]+ '">' + value[$('#selectCCY').attr('DisplayColumn')] + '</option>');
});
res.result est un simple tableau json comme ceci :
[{"ccyID":1,"ccySymbol":"GBP"},{"ccyID":2,"ccySymbol":"AUD"},{"ccyID":3,"ccySymbol":"USD"}]
OH BUGGER !!! ça marche bien dans mon exemple simplifié, donc le problème est ailleurs. Désolé. Le code original est trop long et complexe pour être collé ici, mais je vous ferai savoir quand je trouverai la réponse.
quelque temps plus tard....
OK, j'ai résolu le problème par un appel ajax dans une boucle $(selector).each(). La boucle passe par toutes les cases de sélection et remplit les options de manière asynchrone. Si je fais un appel synchrone, les boîtes de sélection ont la bonne largeur et s'affichent correctement, mais si c'est un appel asynchrone, les boîtes de sélection n'affichent que le premier caractère, comme dans l'image. Je travaille toujours sur ce problème et je vous recontacterai.
Je veux toujours savoir ce qui peut causer l'affichage incorrect d'une boîte de sélection. Je peux contourner le problème et faire en sorte qu'elle s'affiche correctement, mais cela ne répond pas à la question. C'est juste une sélection avec des options, ça devrait toujours fonctionner, non ?
après un week-end à ignorer le problème ....
J'ai trouvé une solution de rechange. Avant de faire l'appel ajax pour remplir la boîte de sélection, je mets d'abord la propriété css display à 'none', puis je la remplis et enfin, quand l'appel ajax et le remplissage sont terminés, je supprime la propriété css display 'none'.
Je ne sais donc toujours pas pourquoi IE ne m'aime pas, mais nous avons au moins une solution.