Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Die Komponente CurrencyInput ist Teil des @jutro/components-Pakets. Die Eigenschaft availableCurrencies (ein Array) muss unbedingt bereitgestellt werden, mit mindestens einem Element. Wenn nur eine Option angegeben ist, kann die Währungsauswahl nicht bearbeitet werden und diese Option wird angezeigt.
Außerdem können Sie mit der Eigenschaft currencyDisplay festlegen, ob das Währungssymbol ($, €, £ ...) oder der Code (USD, EUR, GBP ...) angezeigt werden soll.
Wenn Sie einen Initialwert festlegen möchten, kann die Eigenschaft initiaValue ein Objekt mit 2 Attributen unterstützen: amount und currency.
Wie im vorherigen Beispiel müssen Sie die Eigenschaft availableCurrencies mit der Liste der zur Auswahl stehenden Währungen (unter Verwendung des Währungscodes) festlegen:
Das Ereignis onChange unterstützt den neuen Wert, den Sie eingeben, als zweiten Parameter und verwendet ihn für die Validierung. Verwenden Sie die Eigenschaft stateMessages, wenn ein Fehler angezeigt werden soll:
import{ useCallback, useState }from'react'; import{CurrencyInput}from'@jutro/components'; exportfunctionCurrencyInputValidation(){ const[validationMessages, setValidationMessages]=useState({}); const onChange =useCallback((e, newValue)=>{ const componentValue = newValue.amount; if(!componentValue || componentValue !=10){ setValidationMessages({ error:["The value must be 10. If it's not, we won't not accept it."], }); }else{ setValidationMessages({}); } },[]); return( <CurrencyInput availableCurrencies={['USD']} label="Accept only 10" secondaryLabel="Will raise an error except when value is 10" stateMessages={validationMessages} onChange={onChange} /> ); }
Sie können die value-Eigenschaft für das Szenario der kontrollierten Komponente verwenden:
import{ useState }from'react'; import{CurrencyInput,NumberInput}from'@jutro/components'; exportfunctionCurrencyInputControlled(){ const[updatedValue, setAmount]=useState({ amount:200, currency:'USD', }); constonChange=(e, newValue)=>{ setAmount({amount: newValue,currency:'USD'}); }; return( <div> <NumberInput label="Enter the amount to be assigned to the next field" onChange={onChange} /> <CurrencyInput availableCurrencies={['USD']} label="Changes with the above" secondaryLabel="This value is automatically updated when the value in the first field changes" value={updatedValue} /> </div> ); }
Zugriff auf die Ref-Eigenschaft zum Festlegen des Fokus' (imperativer Handler)
Die Währungseingabe und weitere Eingaben ermöglichen, über eine ref-Eigenschaft auf einige native Verhaltensweisen zuzugreifen. Es werden jedoch nur bestimmte Funktionen verfügbar gemacht. Wenn Sie in diesem Beispiel die Schaltfläche anklicken, wird automatisch die Währungseingabe unten fokussiert.
import{ useRef }from'react'; import{CurrencyInput,Button}from'@jutro/components'; exportfunctionCurrencyInputRef(){ const currencyRef =useRef(null); constsetFocus=(e)=>{ currencyRef?.current?.focus(); }; return( <div> <Button label="Set focus on currency input" onClick={setFocus}></Button> <CurrencyInput availableCurrencies={['USD']} label="Get the focus from the button" ref={currencyRef} /> </div> ); }
Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Beschriftung: Beschreibt den Zweck eines Eingabefeldes.
Hilfstext (optional): Bietet zusätzlichen Kontext, Hinweise oder hilfreiche Informationen, zur Unterstützung des Benutzers. Wird oft verwendet, um bestimmte Anforderungen für das korrekte Ausfüllen eines Feldes zu erklären.
Währungscode oder -symbol: Gibt und zeigt den Währungstyp an, damit Benutzer Geldwerte genau eingeben und verstehen können.
Währungseingabefeld: der Container, bestehend aus einer Füllung und einem Rand, in den der Benutzer Daten eingibt.
Positionieren Sie eine deutliche, sichtbare Beschriftung außerhalb des Währungseingabefelds. Ein Eingabefeld ohne Beschriftung ist mehrdeutig und nicht barrierefrei.
Positionieren Sie eine dauerhafte Beschriftung außerhalb des Feldes.
Gehen Sie nicht davon aus, dass das Feld ohne Beschriftung selbsterklärend ist.
Verwenden Sie Hilfetext, der erklärt, was wie eingeben werden muss. Hier sind einige Beispiele dafür, was Sie in den Hilfetext aufnehmen könnten:
Kontext zur Unterstützung des Benutzers, z. B. wie die Informationen verwendet werden sollen
Hinweise dazu, welche Art von Informationen in das Eingabefeld gehören
Formatierungsbeispiele oder -anforderungen
Verwenden Sie Hilfetext nur für relevante Informationen. Vermeiden Sie die Verwendung von Hilfetext, der einfach nur die gleichen Informationen wiedergibt, die in der Beschriftung erscheinen.
Verwenden Sie für Hilfetext die übliche Groß- und Kleinschreibung. Schreiben Sie den Hilfetext in 1 bis 2 kurzen, vollständigen Sätzen, die mit einem Punkt enden. Wenn Sie Formatierungsbeispiele zeigen, brauchen Sie nicht mit einem Punkt zu enden.
Verwenden Sie Hilfetext, um dem Benutzer zusätzliche Hilfe oder Kontext zu bieten.
Verwenden Sie den Hilfetext nicht, um einfach dieselben Informationen wiederzugeben, die auch in der Beschriftung erscheinen.
Fügen Sie keinen Platzhaltertext in das Währungseingabefeld ein. Platzhaltertext belastet das Kurzzeitgedächtnis der Benutzer, da es nach der Eingabe eines Wertes verschwindet. Auch für Benutzer mit vermindertem Sehvermögen und kognitiven Beeinträchtigungen stellt er eine zusätzliche Belastung dar.
Positionieren Sie Hinweise und Anweisungen, einschließlich Formatierungsbeispiele und -anforderungen, stattdessen außerhalb des Feldes.
Positionieren Sie Hinweise und Anweisungen, einschließlich Formatierungsbeispiele und -anforderungen, außerhalb des Feldes.
Fügen Sie keine Platzhalter in das Währungseingabefeld ein.
Verwenden von Fehlertext zur Anleitung der Benutzer
Der Text der Fehlermeldung erklärt dem Benutzer, wie er den Fehler beheben kann. Im Falle des Währungseingabefelds hängen Fehler oft mit etwas zusammen, das für die Inline-Validierung korrigiert werden muss. Wenn der Benutzer beispielsweise bei einem Antragsprozess für Schadenfälle ein Pflichtfeld für die geschätzten Reparaturkosten nicht ausfüllt, können Sie ihn mit Fehlertext zu einer Lösung führen: „Geben Sie die geschätzten Reparaturkosten ein.“
Verwenden Sie für Fehlertext die übliche Groß- und Kleinschreibung. Schreiben Sie 1 bis 2 kurze, vollständige Sätze, die mit einem Punkt enden.
Verwenden Sie Fehlermeldungstexte, um den Benutzer zu führen und ihm eine Lösung zu zeigen.
Schreiben Sie keine zweideutigen Fehlermeldungen und lassen Sie die Benutzer nicht im Unklaren darüber, wie ein Problem zu lösen ist.
Markieren Sie erforderliche Felder mit einem Sternchen (*). Das Sternchen steht vor der Feldbeschriftung. Benutzer können so leicht herausfinden, welche Felder erforderlich sind, indem sie nur das Zeichen ganz links in der Beschriftung scannen.
Zusätzlich zur Markierung erforderlicher Felder mit einem Sternchen wird empfohlen, klare Anweisungen am oberen Rand des Formulars einzufügen, z. B. „Alle mit einem Sternchen gekennzeichneten Felder sind Pflichtfelder“, um sicherzustellen, dass die Benutzer die Bedeutung des Sternchens verstehen.
Verwenden Sie ein Sternchen, um anzuzeigen, dass ein Feld ein Pflichtfeld ist.
Verwenden Sie kein Sternchen, um etwas zu kennzeichnen, das optional ist.
Schreiben Sie das erste Wort und Substantive groß.
Für Feldbeschriftungen wird die übliche Groß- und Kleinschreibung verwendet.
Weitere Informationen zum Implementieren der Groß- und Kleinschreibung finden Sie im UI-Textstyleguide.
Verwenden Sie die übliche Groß- und Kleinschreibung.
Schreiben Sie nicht alles groß. Dies beeinträchtigt die Lesbarkeit.
Das Währungseingabefeld wird ohne Wert (Standard), Platzhaltertext und vorausgefüllte Eingabe angezeigt.
Bild
Zustand
Beschreibung
Kein Wert (Standard)
Zeigt dem Benutzer an, dass kein Wert eingegeben wurde und kein Platzhalter vorhanden ist.
Platzhalter
Zeigt dem Benutzer an, dass kein Wert eingegeben wurde. Der Platzhalter ist ausgegraut.
Vorausgefüllte Eingabe
Zeigt dem Benutzer an, dass die Eingabe mit Daten vorausgefüllt ist.
Währungseingabefelder verfügen auch über interaktive Zustände für aktiviert, fokussiert, deaktiviert, Fehler, schreibgeschützt und nur anzeigen.
Zustand
Beschreibung
Aktiviert
Zeigt dem Benutzer an, dass das Element für die Interaktion aktiviert ist.
Fokussiert
Zeigt dem Benutzer an, auf welchem UI-Element im System der Fokus liegt.
Deaktiviert
Zeigt dem Benutzer an, dass der Eingabewert aufgrund lokaler Faktoren nicht geändert werden kann. Zum Beispiel muss ein Kontrollkästchen über dem Eingabefeld aktiviert sein, um auf dieses Eingabefeld zuzugreifen. Der Benutzer kann durch Interaktion mit der Seite eine Aktion zur Aktivierung durchführen.
Fehler
Zeigt an, dass der Benutzer einen Fehler bei der Validierung gemacht hat. Der Fehlertext gibt dem Benutzer eine korrigierende Rückmeldung.
Schreibgeschützt
Zeigt dem Benutzer an, dass der Eingabewert aufgrund externer Faktoren nicht geändert werden kann. Zum Beispiel fehlender Schreibzugriff. Der Benutzer kann Maßnahmen zur Aktivierung ergreifen, indem er sich z. B. an einen Administrator wendet.
Nur Anzeige
Der Zustand „Nur Anzeige“ wird in zwei Fällen verwendet:
Ein UI-Element wird im Anzeigemodus verwendet.
Ein UI-Element wird im Bearbeitungsmodus angezeigt, ist aber nie bearbeitbar.
Dieser Zustand wurde zuvor als „Schreibgeschützt“ bezeichnet.
Auf das Eingabeelement kann über die Tastatur zugegriffen werden. Benutzer können mit der TAB-Taste in die Komponente hinein und aus ihr heraus navigieren.
Das Eingabefeld ist über eine „for/id“-Beziehung mit der zugehörigen Beschriftung verknüpft. Wenn Sie das Element „required“ in Storybook aktivieren, wird der Wert aria-required von „true“ auf „false“ umgeschaltet.
Das Tausender-Trennzeichen wird nicht angezeigt, während der Benutzer Daten eingibt. Es wird angezeigt, nachdem die Eingabe abgeschlossen ist und der Benutzer das Feld per Klick oder Tabulatortaste verlassen hat.
Das Kontrastverhältnis von Textelementen zu ihrem Hintergrund liegt über 4,5:1 gemäß den Anforderungen der WCAG 2.1 AA. Nicht-textuelle Inhalte, die eine Bedeutung vermitteln müssen (z. B. Symbole und Sichtbarkeit des Tastaturfokus), weisen ein Kontrastverhältnis von mindestens 3:1 zu den angrenzenden Farben auf. Alle Inhalte sind bis einschließlich 400 % sichtbar und funktionsfähig, ohne dass ein Scrollen in zwei Dimensionen erforderlich ist.
Diese Komponente wurde validiert, um die Zugänglichkeitsrichtlinien WCAG 2.1 AA zu erfüllen. Vom Autor des Inhalts vorgenommene Änderungen können sich jedoch auf die Konformität mit der Barrierefreiheit auswirken.
Achten Sie bei Verwendung dieser Komponente in Ihrer Anwendung auf Folgendes:
Die Beschriftungen und Anweisungen sind aussagekräftig und prägnant. Geben Sie bei Bedarf ergänzende Anweisungen.
Die Komponente zeigt die richtige Währung an. (Der Standardwert ist USD).
Wenn das Eingabefeld erforderlich ist, aktivieren Sie das Kontrollkästchen aria-required in Storybook.
Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Vergewissern Sie sich, dass Sie die API-Oberfläche der Design System-Komponenten und die damit verbundenen Auswirkungen und Kompromisse verstehen. Erfahren Sie mehr in unserer Einführung zur Komponenten-API.
If set to true, displays the component value in plain text. Consider using readonly instead, if possible, because plain text is worse for accessibility than readonly inputs.
The ISO Currency Code for this value's currency. Must be an element of the ISO Currency code array.
Beschreibung
Value of input. Takes precedence over initialValue. If this prop is passed, component works in controlled mode and its value will change only if this prop changes.
Übergeben von HTML-Eigenschaften an die Komponente
Sie können HTML-Eingabeattribute verwenden, mit Ausnahme derjenigen, die von Jutro überschrieben werden. Diese Attribute werden dem input-Element Betrag zugewiesen.
Durch die Übergabe der Eigenschaften id und max werden diese Teil des HTML-input, das im HTML-DOM erstellt wird. Im Fall von max wird verhindert, dass der Benutzer einen Wert über 10 schreibt (dies kann nur durch direktes Einfügen des Werts erfolgen).
Die Jutro-Eingaben haben imperative Handler als Mechanismus implementiert, um Zugang zu einigen gängigen nativen Funktionen zu bieten, die für Sie nützlich sein könnten. Die folgenden Funktionen sind verfügbar:
Fokus setzen ermöglicht es, den Fokus des Benutzers auf eine bestimmte Komponente zu setzen.
Weichzeichnen ermöglicht es, den Fokus von der Komponente zu entfernen.
Zur Komponente scrollen ermöglicht es, den Benutzer zu einem bestimmten Bereich der Seite zu führen.
Diese Funktionen werden über die ref-Eigenschaft bereitgestellt, die sie wie folgt verfügbar macht:
Dies wird durch die Eigenschaft availableCurrencies gesteuert. Wenn Sie mehr als einen Währungsscode angeben, zeigt die Komponente eine Dropdown-Liste zur Auswahl an. Dies gilt nicht, wenn die Eigenschaften displayOnly oder readOnly auf true gesetzt sind.
Wenn der Eigenschaft initialValue oder value ein Währungscode zugewiesen ist, der nicht in der Eigenschaft availableCurrencies enthalten ist, kann die Komponente nicht gerendert werden.
Ungültiger Währungscode in „initialValue.currency“. In „availableCurrencies“ nicht enthalten: GBP
Wenn mit der Eigenschaft initialValue oder value keine Währung angegeben wird, die standardmäßig ausgewählt werden soll, wird in der Komponente die erste in der Eigenschaft availableCurrencies übergebene Währung als Standardwährung verwendet.
Obwohl einige Jutro-Komponenten ergänzende Funktionen oder eine Hilfsfunktion zur Erleichterung des Validierungsprozesses bereitstellen, liegt es in Ihrer Verantwortung als Entwickler, die Validierung von Benutzereingaben (mit oder ohne Verwendung der ergänzenden Hilfsfunktionen) durchzuführen und zu entscheiden, welche Fehlermeldungen angezeigt werden sollen.
Jutro-Komponenten verhalten sich in Abhängigkeit von der Implementierung des Entwicklers.
Wann werden Fehlermeldungen angezeigt?
Fehlermeldungen werden nur angezeigt, wenn Sie sie über die Eigenschaft stateMessages an die Komponente übergeben. Diese Eigenschaft empfängt ein Objekt mit dem folgenden Inhalt:
Die Komponente zeigt alle bereitgestellten Fehlermeldungen in der gleichen Reihenfolge wie im Array an.
Wann erfolgt die Validierung?
Dies ist Ihre Entscheidung als Entwickler. Da die Komponenten nicht festlegen, wann die Validierung durchgeführt wird oder wann der Fehler angezeigt werden muss, müssen Sie die Logik für die Behandlung entsprechend den Projektanforderungen implementieren, z. B. während der Benutzer den Inhalt bearbeitet, wenn die Komponente den Fokus verliert und bei der Formularübermittlung.
Es wurde die neue Komponente @jutro/components/CurrencyInput eingeführt, welche CurrencyField ersetzt.
Die frühere Komponente CurrencyField wurde verworfen und in das @jutro/legacy-Paket verschoben. Um die entsprechende Dokumentation anzuzeigen, wechseln Sie zu einer Version der Dokumentation, die älter als 10.0 ist.