Comment puis-je récupérer la nouvelle valeur sélectionnée et la valeur sélectionnée précédente avec JavaScript lorsque OnCHange ou événement similaire est appelé? Merci! Merci! Merci! :) p> p>
4 Réponses :
Utilisation droite JavaScript et DOM, quelque chose comme ceci ( exemple en direct ):
var box, oldValue;
// Get a reference to the select box's DOM element.
// This can be any of several ways; below I'll look
// it up by ID.
box = document.getElementById('theSelect');
if (box.addEventListener) {
// DOM2 standard
box.addEventListener("change", changeHandler, false);
}
else if (box.attachEvent) {
// IE fallback
box.attachEvent("onchange", changeHandler);
}
else {
// DOM0 fallback
box.onchange = changeHandler;
}
// Our handler
function changeHandler(event) {
var index, newValue;
// Get the current index
index = this.selectedIndex;
if (index >= 0 && this.options.length > index) {
// Get the new value
newValue = this.options[index].value;
}
// **Your code here**: old value is `oldValue`, new value is `newValue`
// Note that `newValue`` may well be undefined
display("Old value: " + oldValue);
display("New value: " + newValue);
// When done processing the change, remember the old value
oldValue = newValue;
}
J'aimerais utiliser un cadre JavaScript. Je suis un grand fan de prototype! :) Mais nous ne sommes pas capables d'introduire l'un d'entre eux pour le moment. :( Merci pour votre conseil, je vous ferai savoir si cela fonctionne.
Regardez ici: Obtention de la valeur de Select (Dropdown) avant de changer A >
Je pense que le meilleur,
L'extrait de code suivant peut aider
Comment est-ce que ce code est meilleur que la réponse acceptée? Pourquoi est-il préférable d'utiliser l'événement en ligne Onchange?
ci-dessous travaillé pour moi. Ajouter ci-dessous deux événements à votre étiquette HTML Select: -
onFocus='this.oldValue = this.value'; //if required in your case add this line to other events like onKeyPressDown and onClick. onChange = 'alert(this.oldValue); this.value=this.oldValue'
Merci pour cette réponse. Je préfère cette façon. Au lieu d'utiliser Ceci code> Je définit une propriété dans la fenêtre. $ myname.oldvalue = ceci.value code> et j'ai également attribué l'OldValue à la valeur actuelle dans i> Onfocus et B> Onchange car la réponse peut changer sans la mise au point de tirer à nouveau.