Erstellen Sie die Währungseingabe in HTML

Shubham Vora 12 Oktober 2023
Erstellen Sie die Währungseingabe in HTML

In diesem Artikel erfahren Benutzer, wie sie das normale HTML-Feld <input> in das Währungseingabefeld umwandeln. Wir werden HTML und jQuery verwenden, um unser Ziel zu erreichen.

Verwenden Sie die JavaScript-Methode toFixed(), um die normale <input> in eine Währungseingabe in HTML umzuwandeln

In HTML ist ein normales <input>-Element verfügbar, und wir können seinen Typ gemäß unseren Anforderungen festlegen. Wir können den Typ nicht zu einer Währungseingabe machen, indem wir den Typ einfach auf Zahl setzen; Wir müssen weitere Änderungen mit JavaScript oder jQuery vornehmen.

Zum Beispiel können wir das Feld <input> in HTML wie unten erstellen; es enthält einige Attribute. Das Attribut type schlägt die Art der Eingabe vor, die es braucht.

Die Attribute min und max schlagen die minimalen bzw. maximalen Zahlenwerte vor, die es braucht. Das Attribut id ist die eindeutige ID des Elements <input>, mit der wir in jQuery auf das Element zugreifen können.

<input type="number" id="currencyInput" min="0.1" max="5000000.0" value="99.9" />

Wir werden jQuery verwenden, um das obige <input>-Feld in eine Währungseingabe umzuwandeln. Wir haben die anonyme Funktion erstellt und in der Variablen inovkeCurrencyInput gespeichert.

Benutzer können unten sehen, wie wir eine anonyme Funktion in jQuery erstellen können.

$.fn.inovkeCurrencyInput = function() {
  // function code
}

Jetzt fügen wir den Event-Listener change mit jQuery zum Eingabeelement innerhalb der Funktion hinzu. Es wird uns helfen, die Änderungen zu erkennen, wenn wir etwas in die Zahleneingabe eingeben.

Hier ist der jQuery-Code zum Hinzufügen des Event-Listeners change innerhalb der Funktion invokeCurrencyInput().

$(this).change(function() {

});

Danach greifen wir mit der Eigenschaft valueAsNumber auf den Wert der Zahleneingabe zu, wenn ein Benutzer etwas zur Zahleneingabe hinzufügt oder löscht. Außerdem greifen wir mit der Methode attr() auf die Attribute min und max des Eingabefelds zu.

Nachdem wir auf die Attribute min und max zugegriffen haben, werden wir den Float-Wert daraus mit der JavaScript-Methode parseFloat() analysieren, wie unten gezeigt.

var currencyvalue = this.valueAsNumber;
var maxValue = parseFloat($(this).attr('max'));
var minValue = parseFloat($(this).attr('min'));

Jetzt haben wir Mindest- und Höchstwerte, die das Währungseingabefeld akzeptieren kann. Außerdem haben wir den aktuellen Wert des Eingabefeldes in der Variable currencyValue gespeichert.

Mit der if-Anweisung prüfen wir, ob currencyValue zwischen minValue und maxValue liegt.

if (currencyvalue > maxValue) {
  currencyvalue = maxValue;
}
if (currencyvalue < minValue) {
  currencyvalue = minValue;
}

Wir werden die Methode number.toFixed(precision) verwenden, um den currencyValue auf eine bestimmte Genauigkeit zu runden. In unserem Fall ist der Genauigkeitswert 1. Wenn Benutzer also einen Eingabewert mit mehr als 1 Genauigkeit eingeben, rundet ein Eingabefeld den Zahlenwert automatisch auf und legt die einfache Genauigkeit fest.

Hier haben wir gezeigt, wie man die Methode number.toFixed() verwendet. Außerdem setzen wir den endgültig formatierten currencyValue als Wert des <input>-Elements.

currencyvalue = currencyvalue.toFixed(1);
$(this).val(currencyvalue);

Zuletzt rufen wir die Funktion invokeCurrencyInput() für das Element <input> auf, wo immer das Dokument geladen wird. Hier greifen wir über seine ID auf das Element <input> zu.

$(document).ready(function() {
  $('input#currencyInput').inovkeCurrencyInput();
});

Vollständiger Quellcode - HTML + jQuery:

Wir haben auch das jQuery-CDN im folgenden Beispielcode hinzugefügt. Benutzer müssen es hinzufügen, um jQuery mit dem HTML-Code aufzurufen.

<html>
  <body>
    $
    <input
      type="number"
      id="currencyInput"
      min="0.1"
      max="5000000.0"
      value="99.9"
    />
    <script
      src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.js"
      integrity="sha512-CX7sDOp7UTAq+i1FYIlf9Uo27x4os+kGeoT7rgwvY+4dmjqV0IuE/Bl5hVsjnQPQiTOhAX1O2r2j5bjsFBvv/A=="
      crossorigin="anonymous"
      referrerpolicy="no-referrer"
    ></script>
    <script>
      $.fn.inovkeCurrencyInput = function () {
        $(this).change(function () {
          var currencyvalue = this.valueAsNumber;
          var maxValue = parseFloat($(this).attr("max"));
          if (currencyvalue > maxValue) currencyvalue = maxValue;
          var minValue = parseFloat($(this).attr("min"));
          if (currencyvalue < minValue) currencyvalue = minValue;
          currencyvalue = currencyvalue.toFixed(1);
          $(this).val(currencyvalue);
        });
      };
      $(document).ready(function () {
        $("input#currencyInput").inovkeCurrencyInput();
      });
    </script>
  </body>
</html>

Der Code zeigt im Eingabefeld zunächst den Wert 99.9 an. Wenn der Benutzer einen Wert außerhalb von 0.1 und 5000000.0 eingibt, werden die Werte 0.1 und 5000000.0 entsprechend eingestellt; Andernfalls rundet unser Code den Wert auf eine einzelne Präzisionsziffer auf oder ab und zeigt ihn im Eingabefeld an.

Benutzer müssen die Taste enter drücken, um den Wert zu übermitteln und zu runden.

Auf diese Weise können wir das normale Eingabefeld in das Währungseingabefeld umwandeln, das Mindest- und Höchstgrenzen hat, und Benutzer können auch Werte mit einer bestimmten Anzahl von Stellen eingeben.

Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub

Verwandter Artikel - HTML Input