Je convertis les valeurs en fonction des unités (km à m, lb à g, etc.). Je l'ai fonctionné, à l'exception d'un bug que je n'arrive pas à résoudre.Gestion du clavier dans la liste déroulante
Voici la fonction qui gère les événements (conversion se produit dans un plug-in jQuery):
function unitConversion() {
var from;
// Remember which unit was selected in the drop down list.
$('select.unit').live('click', function() {
from = $(this).find('option:selected').text();
});
// Now handle the conversion.
$('select.unit').live('change', function() {
// Get the from and to values.
// var from = $(this).prev().find('option:selected').text();
var to = $(this).find('option:selected').text();
// Change the text for each field that corresponds with this component.
var textBoxes = $(this).closest('div.data-group').find('input:text');
textBoxes.each(function() {
var curValue = $(this).val();
$(this).val($(this).unitConvert({
value: curValue,
from: from,
to: to
}));
});
});
}
Cela fonctionne très bien (bien que, si vous avez des améliorations à ce code, je suis toujours vouloir apprendre). Cependant, le problème original que j'avais était que je devais me souvenir de l'unité sélectionnée précédente dans la liste déroulante. Par conséquent, l'événement "clic" que je fais.
Cette solution fonctionne très bien ... tant que l'individu utilise la souris. Cependant, si je clique sur la liste déroulante avec le clavier et que j'appuie sur les touches fléchées haut/bas, rien ne se passe. J'ai essayé les différents événements clés *, et ceux-ci ne semblent pas fonctionner non plus. Que devrais-je faire ici pour gérer les entrées clavier et souris?
(Mon espoir était que l'événement de changement me permettra d'accéder à l'élément sélectionné précédemment, mais cela ne semble pas être le cas.)
Mise à jour: Je voulais apporter quelques précisions supplémentaires. Si j'utilise l'événement focus, les conversions deviennent plutôt bizarres. La raison en est que je ne définis la valeur "de" que la première fois que je me concentre. Si je veux que la conversion se produise correctement à chaque fois, je dois perdre le focus sur la liste déroulante, puis refaire le processus. Pas très utile.
De plus, pour une raison quelconque, lorsque je clique dans le champ, puis cliquez sur les flèches haut et bas, l'événement change ne se déclenche pas. Je n'ai vraiment aucune idée pourquoi c'est ...
Excellente réponse! Je vous remercie. Je n'ai pas réalisé que les données existaient même. Je suppose qu'il va montrer qu'il y a toujours quelque chose de nouveau à apprendre. Merci beaucoup. – JasCav