8
votes

Dropdown CurrentIndex ONCHANGE

Il y a une liste déroulante avec 5 options. Actuellement, l'option 2 est sélectionnée. L'utilisateur sélectionne l'option 4 maintenant. L'événement ONCHANGE est tiré qui est pris dans une fonction JS en écoutant pour ONCHANGE sur la sélection.

Dans la fonction JS, je peux vérifier facilement l'index de l'option sélectionnée par l'utilisateur à l'aide de la propriété sélectionnée de la propriété, je veux aussi savoir quelle était la valeur d'origine que l'utilisateur a changé l'utilisateur. à partir de.

Y a-t-il une propriété qui persiste fondamentalement la valeur d'origine, c'est-à-dire Option 2 Dans ce cas.


0 commentaires

3 Réponses :


1
votes

Non, vous auriez besoin de persister que vous-même dans une variable JS.


0 commentaires

6
votes

Tout comme concept, je mets ensemble ce qui suit - il peut très bien y avoir une meilleure façon de le faire:

   var colors = document.getElementById("colors");
       colors.vals = [];
       colors.setPrevious = function() { this.vals.unshift(this.selectedIndex); }
       colors.getPrevious = function() { return this.vals[1]; }
       colors.onchange    = function() { this.setPrevious(); this.getPrevious(); }
       // set initial state
       colors.setPrevious();


3 commentaires

+1: bonne idée. Vous pouvez utiliser un objet au lieu d'un tableau pour gérer plusieurs éléments de sélection. Quelque chose comme vals = {SELECT: [], SELECT2: []} .


++ 1. En supposant qu'ils ne sont pas toujours des défauts connus, vous auriez besoin de semer les valeurs des valeurs initiales lorsque la page se charge. Au lieu d'une variable JS pour stocker ceux-ci (ou un hachage d'entre eux), vous pouvez simplement le stocker comme un expando sur la balise Select lui-même.