11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un problème avec jqueryUI.dialog() et internet explorer.

Je charge une liste déroulante contenue dans une boite de dialogue et sur ie, il y a une erreur.

Voici les divers codes :


function loadList(urlToLoad, classHtmlElement){		
			$.ajax({
				url:urlToLoad,
				dataType:"xml",
				success:function(data){
					$(data).find("response").find("row").each(function(){
						$( classHtmlElement+" select").append("<option value='"+$(this).attr("id")+"'>"+$(this).attr("label")+"</option>");
					});//END EACH FUNCTION
				}//END SUCCESS FUNCTION
				
	});//END AJAX	
}

		loadList(referentialSportSportsPortfolioPath, ".editForm");


<form method="post" action="rs/referential/sport/sports/save" class="submitForm editForm">
	<div>
		<label for="name">Name</label>
		<input type="text" name="name" value="" maxlength="30" />
	</div>
	<div>
		<label for="name">Code</label>
		<input type="text" name="code" value="" maxlength="10" class="uppercase" />
	</div>
	<div class="firstSearch">
		<label for="name">Portfolio</label>
		<select name="portfolioId">
		<!-- Loaded from xml -->
		</select>
	</div>
	<div class="formSportList">
		<label for="name">Sport</label>
		<select name="sportId">
		<!-- Loaded from xml -->
		</select>
	</div>
	<div class="alignCenter">
		<input type="button" name="save" value="" class="btn_save" />
		<input type="button" name="cancel" value="" class="btn_Cancel" />
	</div>
</form>


voici ce que ca donne : http://projets.vaudoo-interactive.com/jqueryUi.png


est-ce que quelqu'un connais la raison ?

Merci d'avance

Ambroise Fauchère
Quand tu fais $( classHtmlElement+" select"), soit donc $( ".editForm select") si on tient compte du parametre que tu envoie à ta fonction, jQuery peut récupérer plusieurs éléments (le select qui est dans portfolio et celui qui est dans sport), ce qui fera que tes deux listes seront remplies des mêmes éléments: donc en premier lieu est-ce que c'est bien le comportement que tu souhaite ?

Ensuite ce que tu peux faire c'est vérifier que tes données sont bien retournées et parsées correctement: Dans le each de ton retour ajax, rajoute un alert ou un console.log pour voir si déjà dans un premier temps il rentre bien dans ton each et dans un deuxieme temps s'il affiche bien les données que tu veux (parce que si ton xml est mal formé et qu'il ne trouve pas d'élément response contenant des enfants row, il ne passera jamais dans le each).

Eventuellement affiche ton data Smiley cligne
non ca ne peut pas être ca la cause du problème... j'ai mis une classe au div conteneur et changé le sélecteur...

quant au flux xml, il est correct.

De plus, le même script, quand il est utilisé sur ma page (et pas dans le dialog() ), il fonctionne parfaitement, même sous IE... Smiley decu