Vorschau

6-stelliges OTP-Eingabefeld. Durch die Eingabe einer Zahl wird automatisch zum nächsten Feld weitergeleitet.

Geben Sie den Bestätigungscode ein
Wenn Sie eine Zahl eingeben, wird diese automatisch zum nächsten Feld verschoben.

Anwendungsfälle und Funktionen

Design- und UX-Punkte

  1. Boxgröße 52x60px: Optimale Größe für gute Sichtbarkeit und einfache Touch-Bedienung.

  2. transform: scale(1.05) im Fokus: Sie können deutlich erkennen, in welches Feld gerade eingetreten wird.

  3. .filled-Klasse: Visualisieren Sie den Fortschritt, indem Sie die Rahmenfarbe des gefüllten Felds ändern.

So passen Sie es an

Auf 4-stelliges OTP geändert


{/* Eingabeelemente auf 4 reduzieren */}

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

Boxgröße ändern


.otp-box { width: 44px; height: 52px; font-size: 1.25rem; }

Implementierungscode

<div class="otp-inputs" id="otp-inputs">

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

<input class="otp-box" type="text" inputmode="numeric" maxlength="1" />

</div>



<style>
.otp-inputs { display: flex; gap: 0.75rem; }

.otp-box {

width: 52px; height: 60px;

background: rgba(255,255,255,0.06);

border: 2px solid rgba(255,255,255,0.12);

border-radius: 12px;

color: white;

font-size: 1.5rem;

font-weight: 700;

text-align: center;

outline: none;

transition: border-color 0.2s, background 0.2s, transform 0.1s;

}

.otp-box:focus { border-color: #6366f1; background: rgba(99,102,241,0.1); transform: scale(1.05); }

.otp-box.filled { border-color: rgba(99,102,241,0.5); }
</style>



<script>

(function() {

var inputs = Array.from(document.querySelectorAll('#otp-inputs .otp-box'));

inputs.forEach(function(input, i) {

  input.addEventListener('input', function(e) {

    var val = e.target.value.replace(/[^0-9]/g, '');

    e.target.value = val.slice(-1);

    if (val && i < inputs.length-1) inputs[i+1].focus();

    e.target.classList.toggle('filled', !!e.target.value);

  });

  input.addEventListener('keydown', function(e) {

    if (e.key==='Backspace' && !e.target.value && i>0) {

      inputs[i-1].focus(); inputs[i-1].value=''; inputs[i-1].classList.remove('filled');

    }

  });

  input.addEventListener('paste', function(e) {

    e.preventDefault();

    var text = (e.clipboardData || window.clipboardData).getData('text').replace(/[^0-9]/g, '');

    text.split('').forEach(function(ch, j) {

      if (inputs[i+j]) { inputs[i+j].value = ch; inputs[i+j].classList.add('filled'); }

    });

    var nextEmpty = inputs.findIndex(function(inp, j) { return j >= i && !inp.value; });

    if (nextEmpty !== -1) inputs[nextEmpty].focus();

  });

});

})();

</script>

Browserkompatibilitätsstatus

| Browser | Kompatibilitätsstatus |

|--------|-------|

| Chrome 66+ | ✅ Vollständig kompatibel |

| Firefox 63+ | ✅ Vollständig kompatibel |

| Safari 12+ | ✅ Vollständig kompatibel |

| Kante 79+ | ✅ Vollständig kompatibel |

Auf Mobilgeräten zeigt inputmode="numeric" automatisch die numerische Tastatur an, was die Benutzerfreundlichkeit erheblich verbessert.