Intrigué par DOM comportement chargé dynamiquement select = undefined
-
12-11-2019 - |
Question
Ci-dessous le code suivant qui fonctionne parfaitement pour le chargement dynamique d'un menu déroulant.Le code est appelé dans les documents de prêt de la fonction de pré-charger des données dans une page.Le code fonctionne très bien.Cependant, je suis perplexe sur le fait qu'il semble "undefined" dans les DOM.ie...événement de changement etc...) lorsque je tente de sélectionner une valeur....
Dans le HTML, la est simplement fixé:
<select id="optionsChaa" name="chaa_id" class="largewidth"></select>
Le jquery, le code est comme suit.Elle fonctionne.N'hésitez pas à utiliser dans votre code
var optionsValues = '<select id="optionsChaa" name="chaa_id" class="largewidth">';
optionsValues += '<option value=""></option>';
$.each(result, function() {
optionsValues += '<option value="' + this.chaa_id.val + '">' + this.chaa_name + '</option>';
});
optionsValues += '</select>';
var options = $('#optionsChaa');
options.replaceWith(optionsValues);
$('#optionsChaa').change(function() {
// Alert returns undefined...
alert($(this).val() );
});
Alors pourquoi est-il "undefined" après le DOM?
Pas de solution correcte
Autres conseils
Je pense qu'il ya quelque chose de mal avec l' this.chaa_id.val
partie.Dans each
, "ce" désigne le "courant" de l'élément (c'est à direun membre de la results
array).
Pourriez-vous montrer ce qui est dans votre result
variable?
J'ai essayé votre code result
comme:
var result = [
{ 'chaa_id' : { 'val' : 1 }, 'chaa_name' : 'name1'},
{ 'chaa_id' : { 'val' : 2 }, 'chaa_name' : 'name2'}
]
Et la alert()
semble fonctionner.