Inhaltsverzeichnis
Einschränkung api
Methode 2: Stellen Sie die bevorzugte Sprache in lokalem Speicher
Heim Web-Frontend CSS-Tutorial Zwei Möglichkeiten, um benutzerdefinierte übersetzte Nachrichten für HTML -Formulare zu erstellen

Zwei Möglichkeiten, um benutzerdefinierte übersetzte Nachrichten für HTML -Formulare zu erstellen

Mar 08, 2025 am 09:57 AM

Two Ways to Create Custom Translated Messaging for HTML Forms

HTML-Formulare verfügen über integrierte Methoden, um die Formulareingabe und andere Steuerelemente auf der Grundlage vordefinierter Regeln wie Bedarf zu überprüfen, minimale und maximale Einschränkungen für Bereichsschieber zu setzen oder Modi für E-Mail-Eingänge einzustellen, um zu überprüfen, ob das Format korrekt ist. Native HTML und Browser bieten uns viele "kostenlose" Funktionen, um die Formulare ohne komplexe Skripte zu überprüfen.

Wenn etwas nicht richtig verifiziert wird? Wir erhalten eine "kostenlose" Fehlermeldung, die der Person verwendet wird, die das Formular verwendet.

Diese reichen normalerweise aus, um den Job zu erledigen. Wenn wir jedoch spezifischere Fehlerinhalte benötigen, müssen wir diese Nachrichten möglicherweise überschreiben - insbesondere wenn wir übersetzte Inhalte über Browser hinweg verarbeiten müssen. So funktioniert es.

Einschränkung api

Einschränkungs -API wird verwendet, um die Standard -HTML -Formular -Validierungsnachricht zu überschreiben und wir unsere eigene Fehlermeldung definieren können. Chris Ferdinandi gab dies sogar einen detaillierten Blick auf CSS-Tricks.

Kurz gesagt, die Einschränkungs -API soll die Kontrolle über Eingabelemente liefern. Die API kann in einem einzelnen Eingangselement oder direkt aus einem Formularelement aufgerufen werden.

Nehmen wir zum Beispiel an, wir verwenden diese einfache Formulareingabe:

<label for="fullName">Full Name</label>
<input type="text" id="fullName" required>
<button type="submit" id="btn">Submit</button>
Nach dem Login kopieren
Nach dem Login kopieren
Wir können unsere eigene Fehlermeldung festlegen, indem wir das Element

und die fullNameInput -Methode aufrufen und es dann eine benutzerdefinierte Nachricht übergeben: setCustomValidity()

const fullNameInput = document.getElementById("fullName");
fullNameInput.setCustomValidity("This is a custom error message");
Nach dem Login kopieren
Nach dem Login kopieren
Wenn Sie auf die Schaltfläche Senden klicken, wird die angegebene Nachricht im Standardmeldungsort angezeigt.

Übersetzung der benutzerdefinierten Formularverifizierungsnachricht

Einer der Hauptanwendungsfall für benutzerdefinierte Fehlermeldungen ist die bessere Verarbeitung der Internationalisierung. Wir können dies auf zwei Hauptarten tun. Es gibt andere Möglichkeiten, dies zu erreichen, aber ich werde hier die, die ich für die unkomplizierteste vorstellen kann.

Methode 1: Verwenden Sie die Spracheinstellungen des Browsers

Die erste Methode besteht darin, die Browserspracheinstellungen zu verwenden. Wir können die Spracheinstellungen aus dem Browser erhalten und dann prüfen, ob wir die Sprache unterstützen. Wenn wir die Sprache unterstützen, können wir die übersetzte Nachricht zurückgeben. Wenn wir diese bestimmte Sprache nicht unterstützen, wird eine alternative Antwort gegeben.

Verwenden Sie weiterhin die vorherige HTML -Nutzung ein Übersetzungsobjekt, um Ihre bevorzugte Sprache (innerhalb des Skript -Tags) zu speichern. In diesem Fall unterstützt das Objekt Englisch, Swahili und Arabisch.

const translations = {
  en: {
    required: "Please fill this",
    email: "Please enter a valid email address",

  },
  sw: {
    required: "Sehemu hii inahitajika",
    email: "Tafadhali ingiza anwani sahihi ya barua pepe",
  },
  ar: {
    required: "هذه الخانة مطلوبه",
    email: "يرجى إدخال عنوان بريد إلكتروني صالح",
  }
};
Nach dem Login kopieren
Als nächstes müssen wir die Tags der Objekte extrahieren und an die Sprache des Browsers anpassen.

// 翻译对象
const supportedLangs = Object.keys(translations);
const getUserLang = () => {
  // 拆分以获取第一部分,浏览器通常为 en-US
  const browserLang = navigator.language.split('-')[0];
  return supportedLangs.includes(browserLang) ? browserLang :'en';
};

// 翻译后的错误消息
const errorMsgs = translations[getUserLang()];
// 表单元素
const form = document.getElementById("myForm");
// 按钮元素
const btn = document.getElementById("btn");
// 名称输入
const fullNameInput = document.getElementById("fullName");
// 错误消息的包装器
const errorSpan = document.getElementById("error-span");

// 单击按钮时……
btn.addEventListener("click", function (event) {
  // 如果名称输入不存在……
  if (!fullNameInput.value) {
    // ……抛出错误
    fullNameInput.setCustomValidity(errorMsgs.required);
    // 为样式设置输入的 .error 类
    fullNameInput.classList.add("error");
  }
});
Nach dem Login kopieren
Die hier

-Funktion vergleicht und gibt die unterstützte Browsersprache oder alternative Sprachen in Englisch zurück. Führen Sie das Beispiel aus. Wenn die Schaltfläche angeklickt wird, sollte eine benutzerdefinierte Fehlermeldung angezeigt werden. getUserLang()

Methode 2: Stellen Sie die bevorzugte Sprache in lokalem Speicher

fest

Die zweite Methode besteht darin, benutzerdefinierte Spracheinstellungen in lokalstorage <option></option> zu verwenden. Mit anderen Worten, wir bitten die Benutzer, zuerst ihre bevorzugte Sprache aus den <select></select> -Elements auszuwählen, die das optionale

-Tag enthalten. Sobald die Auswahl getroffen wurde, sparen wir ihre Vorlieben für LocalStorage, damit wir sie verweisen können.
<label for="fullName">Full Name</label>
<input type="text" id="fullName" required>
<button type="submit" id="btn">Submit</button>
Nach dem Login kopieren
Nach dem Login kopieren

<select></select> Mit dem Element

können wir ein Skript erstellen, das LocalStorage überprüft und gespeicherte Einstellungen verwendet, um eine übersetzte benutzerdefinierte Überprüfungsnachricht zurückzusetzen:
const fullNameInput = document.getElementById("fullName");
fullNameInput.setCustomValidity("This is a custom error message");
Nach dem Login kopieren
Nach dem Login kopieren

<select></select> Dieses Skript legt den Anfangswert für die aktuell ausgewählte Option fest, spart den Wert für LocalStorage und holt ihn nach Bedarf von LocalStorage ab. In der Zwischenzeit aktualisiert das Skript die ausgewählten Optionen in jedem Änderungsereignis, das vom

Element ausgelöst wird, während der ursprüngliche Fallback beibehält, um eine gute Benutzererfahrung zu gewährleisten.

Wenn wir Devtools bei der Auswahl der Spracheinstellungen einschalten, werden wir feststellen, dass der bevorzugte Wert des Benutzers in LocalStorage verfügbar ist.

Zusammenfassung

Das ist es! Ich hoffe, dieser schnelle kleine Trick hilft. Ich weiß, dass ich es vorher haben wollte, wenn ich herausfand, wie man die Einschränkungs -API benutzt. Dies ist eines dieser Dinge im Web, die Sie möglich kennen, aber die genaue Methode ist schwer zu finden.

Referenz
  • Formprüfungsreihe (Chris Ferdinandi)
  • Verstehen Sie den Pseudo-Klasse-Selektor (Chris Coyier)
  • Einschränkungsprüfung (MDN)
  • Client Form Besturification (MDN)

Das obige ist der detaillierte Inhalt vonZwei Möglichkeiten, um benutzerdefinierte übersetzte Nachrichten für HTML -Formulare zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1673
14
PHP-Tutorial
1278
29
C#-Tutorial
1257
24
Ein Vergleich statischer Formanbieter Ein Vergleich statischer Formanbieter Apr 16, 2025 am 11:20 AM

Versuchen wir, hier einen Begriff zu prägen: "Statischer Formanbieter". Sie bringen Ihre HTML

Ein Beweis für das Konzept, um Sass schneller zu machen Ein Beweis für das Konzept, um Sass schneller zu machen Apr 16, 2025 am 10:38 AM

Zu Beginn eines neuen Projekts erfolgt die SASS -Zusammenstellung im Blinzeln eines Auges. Dies fühlt sich gut an, besonders wenn es mit Browsersync kombiniert ist, das nachlädt

Wöchentliche Plattformnachrichten: HTML -Ladeattribut, die Haupt -ARIA -Spezifikationen und Wechsel von Iframe zu Shadow Dom Wöchentliche Plattformnachrichten: HTML -Ladeattribut, die Haupt -ARIA -Spezifikationen und Wechsel von Iframe zu Shadow Dom Apr 17, 2025 am 10:55 AM

In der Zusammenfassung der Plattformnachrichten in dieser Woche stellt Chrome ein neues Attribut für das Laden, Zugänglichkeitspezifikationen für Webentwickler und die BBC -Bewegungen ein

Einige praktisch mit dem HTML-Dialogelement Einige praktisch mit dem HTML-Dialogelement Apr 16, 2025 am 11:33 AM

Ich schaue mir das HTML -Element zum ersten Mal an. Ich habe es für eine Weile dessen bewusst, aber Haven &#039; Es wurde es noch nicht für einen Dreh genommen. Es hat einige ziemlich cool und

Papierform Papierform Apr 16, 2025 am 11:24 AM

Buy or Build ist eine klassische Technologiedebatte. Das Aufbau von Dingen selbst ist vielleicht billiger, weil Ihre Kreditkartenrechnung keine Werbebuchung gibt, aber

Wöchentliche Plattform News: Textabstand Lesezeichen, Top-Level-Erwartung, neuer Verstärker-Ladeindikator Wöchentliche Plattform News: Textabstand Lesezeichen, Top-Level-Erwartung, neuer Verstärker-Ladeindikator Apr 17, 2025 am 11:26 AM

In der Roundup in dieser Woche, einem praktischen Lesezeichen für die Inspektion von Typografie, unter Verwendung dessen, wie sich JavaScript -Module gegenseitig importieren, sowie Facebook &#039; s.

Wohin sollte 'Podcast' -Link abonnieren? Wohin sollte 'Podcast' -Link abonnieren? Apr 16, 2025 pm 12:04 PM

Für eine Weile war iTunes der große Hund im Podcasting. Wenn Sie also "Abonnieren Sie Podcast" verlinkt haben, um zu mögen:

Optionen zum Hosting Ihrer eigenen nicht-javaScript-basierten Analysen Optionen zum Hosting Ihrer eigenen nicht-javaScript-basierten Analysen Apr 15, 2025 am 11:09 AM

Es gibt eine Menge Analyseplattformen, mit denen Sie Besucher- und Nutzungsdaten auf Ihren Websites verfolgen können. Vielleicht vor allem Google Analytics, das weit verbreitet ist

See all articles