8
votes

Comment modifier programmable-t-il de manière programmable de choisir pour qu'il tire son comportement d'onchange?

Cela ne semble pas fonctionner: xxx

(J'utilise Dojo, mais cela n'a pas vraiment d'importance.)


8 commentaires

Dupliquer possible. Vu cela aujourd'hui.


J'ai fait une recherche, mais je n'ai rien trouvé.


Je cherche ça. Évidemment, il est libellé différemment ...


Je devrais affirmer que l'utilisation de dojo fait dans ce cas, car vous n'utilisez pas la manière javascript typique de modifier l'élément sélectionné dans une liste déroulante. Avez-vous essayé de changer mysel.Selectedindex?


Peut-être que celui-ci: Stackoverflow.com/Questtions/1219026/...


Ici, il est: Stackoverflow.com/Questtions/1219026/...


@ AJH1138. Je suis à peu près sûr que tout le dojo fait ici est un document d'aliasing.getelementyid. Je vais essayer la méthode sélectionnée. (Après avoir fini de lire à travers cette autre question.)


Oh :-( semble que je n'étais pas le plus rapide avec mes recherches ^^


6 Réponses :


2
votes

Vous pouvez jeter un coup d'œil à ces questions et à leurs réponses: ils pourraient aider:


0 commentaires

3
votes

Cela changera la valeur mais ne pas tirer l'événement OnChange. Chaque fois que vous modifiez un élément avec JavaScript, il ne tirera pas l'événement (vous empêche d'entrer dans les problèmes de récursivité *).

Si vous configurez un gestionnaire d'événements comme. P>

function myHandler(){
  //do whatever stuff here
  changeColor( dojo.byId('mySel') );
}


0 commentaires

0
votes

essayer d'attribuer la sélection signexindex à la place.


0 commentaires

8
votes

Le nom 'Onchange' est un peu trompeur, sauf si vous comprenez qu'un changement l'événement et qu'une valeur étant changée n'est pas la même chose. Un événement de changement se produit lorsque l'utilisateur modifie la valeur dans le navigateur. Je crois que vous pouvez déclencher l'événement manuellement en appelant dojo.byid (mysel '). OnChange () Après que vous changiez de manière programmatique de la valeur, cependant. (Vous devrez peut-être définir réellement une fonction qui appelle alerte , cependant. Je ne l'ai pas fait moi-même.)


0 commentaires

1
votes

Vous pouvez accéder à l'événement 'OnproperTychange', il contient une propriété dans les arguments de l'événement pour identifier quelle propriété a été modifiée.

Il détecte les modifications apportées à la fois «sélectionnée» et «Valeur» - Simplement testez le test 'Nom » P>

<select id="mySel" onpropertychange="dothis(event);">
    <option value="a">a</option>    
    <option value="b">b</option>
</select>

function dothis(event)
{

    if (event.propertyName == "selectedIndex")
            alert('selection changed');
}


0 commentaires

3
votes

Pour quiconque cherche à déclencher l'événement code> modifier code> à l'aide de JavaScript.

        var evObj = document.createEvent("HTMLEvents");
        evObj.initEvent("change", true, true);
        var elem = document.getElementById('some-id');
        elem.dispatchEvent(evObj);


0 commentaires