Je suis totalement perplexe et toute aide est appréciée.utiliser une variable lors du réglage de l'option select: sélectionné dans jquery find() IE7 problème
extrait de code:
$specialIFrame.contents().find("#flavorPara select#productList option[value="+$varietal_code+"]").attr("selected","selected");
$specialIFrame
est un iframe, les valeurs du menu de sélection sont tirés d'un autre iframe sur la page. Le code ci-dessus définit correctement l'option sélectionnée dans FF et Chrome, mais pas dans IE7. Quand je teste la valeur de $varietal_code
avec une alerte(); Je reçois la valeur numérique correcte. Quand je code dur dans une valeur valide au lieu de la variable $varietal_code
le fonctionne au-dessus correctement même dans IE7. Mais lorsque j'utilise ce qui précède dans IE7, sur une machine Windows Vista, le menu de sélection par défaut à la première option.
Je voudrais inclure tout le code mais il est tellement verbeux J'espère que mon problème est dans le code ci-dessus seulement. J'ai également essayé .attr('selected',true);
en vain.
Je suppose que ma concaténation est le problème? Merci d'avance, Stack Overflow a toujours eu des réponses à mes questions mais c'est la première fois que je pose une question.
J'ajoute toute la fonction, cela peut être un problème plus profond que ce que je pensais:
$specialIFrame.contents().find('#selectWinePopup a').click(function() {
var $varietal_code = $(this).attr('href').replace('#','');
var $varietal_name = $(this).text();
//alert('code ' + $varietal_code + ' name ' + $varietal_name);
//$specialIFrame.contents().find('#flavorPara #productList > option[value="'+$varietal_code+'"]').attr("selected", "selected");
$specialIFrame.contents().find("#flavorPara select#productList option[value="+$varietal_code+"]").attr("selected", "selected");
//$specialIFrame.contents().find('#flavorPara #productList').val($varietal_code);
//$specialIFrame.contents().find("#flavorPara select#productList option[value="+$varietal_code+"]").selectedIndex = 1;
//alert($varietal_code);
$specialIFrame.contents().find('#selectWinePopup').hide();
$specialIFrame.contents().find('#flavorPara').removeClass('active');
$specialIFrame.contents().find('#flavorPara').css("background-image","url('/resources/images/ftrWineSelect.jpg')");
var $starttext = $specialIFrame.contents().find('#flavorPara #showflavor').text();
var $newtext = $specialIFrame.contents().find('#flavorPara select#productList option:selected').text();
var $valtext = $specialIFrame.contents().find('#flavorPara select#productList option:selected').val();
//alert($newtext);
alert($valtext);
$specialIFrame.contents().find('#flavorPara #showflavor').text($varietal_name);
//alert('code ' + $varietal_code + ' name ' + $varietal_name);
});
je quittais mes propres tests et alertes dans tout le monde peut voir de mes tests.
Essayez ceci: '$ specialIFrame.contents(). Find (" # productList ") .val ($ varietal_code);' –