Ich konvertiere Werte basierend auf Einheiten (km zu m, lb zu g, etc). Ich habe es funktioniert, bis auf einen Fehler, den ich nicht lösen kann.Handhabung der Tastatur in der Dropdown-Liste
Hier ist die Funktion, die die Ereignisse verarbeitet (Konvertierung in einem jQuery-Plug-in geschieht):
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
}));
});
});
}
Dies funktioniert gut (obwohl, wenn Sie diesen Code keine Verbesserungen haben, bin ich immer wiling zu lernen). Das ursprüngliche Problem, das ich hatte, war jedoch, dass ich mich an die vorherige ausgewählte Einheit in der Dropdown-Liste erinnern musste. Daher das "Klick" -Ereignis, das ich mache.
Diese Lösung funktioniert gut ... solange die Person die Maus verwendet. Wenn ich jedoch mit der Tastatur auf die Dropdown-Liste klicke und die Pfeiltasten nach oben/unten drücke, passiert nichts. Ich habe die verschiedenen Schlüssel * Ereignisse ausprobiert, und diese scheinen auch nicht zu funktionieren. Was soll ich hier tun, um Tastatur und Maus-Eingabe zu behandeln?
(war meine Hoffnung, dass das Änderungsereignis mir das zuvor ausgewählte Element zuzugreifen erlauben würde, aber das scheint nicht der Fall zu sein.)
aktualisieren: ich einige zusätzliche Erläuterungen schaffen wollte.
Wenn ich das Fokusereignis verwende, werden die Konvertierungen irgendwie komisch. Der Grund dafür ist, dass ich den "from" -Wert nur beim ersten Mal setze, wenn ich den Fokus bekomme. Wenn ich möchte, dass die Konvertierung jedes Mal korrekt erfolgt, muss ich den Fokus auf die Dropdown-Liste verlieren und den Prozess dann überarbeiten. Nicht sehr nützlich.
Wenn ich aus irgendeinem Grund in das Feld klicke und dann auf die Pfeile nach oben und unten klicke, wird das Änderungsereignis nicht ausgelöst. Ich habe wirklich keine Ahnung, warum das so ist ...
Ausgezeichnete Antwort! Vielen Dank. Ich wusste nicht, dass Daten überhaupt existierten. Ich denke, es gibt immer etwas Neues zu lernen. Vielen Dank. – JasCav