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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top