Chrome 'bitte mit der geforderten format" Validierung Nachricht
Ich bin Herumspielen mit HTML 5 Validierung und Lokalisierung und haben es geschafft, einige code arbeiten, die mir erlaubt, die Lokalisierung der HTML 5 Validierung Fehlermeldungen (siehe unten). Mein problem ist, dass in Chrome beim Abgleich gegen ein Muster, Sie bekommen immer noch ein pop-up in Englisch (oder ich denke, was auch immer Sprache, die Sie von Chrome einrichten in) "bitte mit der geforderten format'. Wie kann Sie unterdrücken dieses pop-up, so dass ich einfach meine eigenen Validierung von Nachrichten?
$(document).ready(function () {
var elementsInput = document.getElementsByTagName("input");
var elementsTextArea = document.getElementsByTagName("textarea");
for (var i = 0; i < elementsInput.length; i++) {
elementsInput[i].oninvalid = function (e) {
e.target.setCustomValidity("");
if (!e.target.validity.valid) {
switch (e.target.name) {
case "Name":
if ("@Thread.CurrentThread.CurrentUICulture.Name.ToLower()" == "fi-fi") {
e.target.setCustomValidity("Anna nimesi");
} else {
e.target.setCustomValidity("Please enter a Name");
}
break;
case "EmailAddress":
if (e.target.validity.valueMissing) {
if ("@Thread.CurrentThread.CurrentUICulture.Name.ToLower()" == "fi-fi") {
e.target.setCustomValidity("Anna sähköpostiosoitteesi");
} else {
e.target.setCustomValidity("Please enter an Email Address");
}
}
else if (e.target.validity.patternMismatch) {
if ("@Thread.CurrentThread.CurrentUICulture.Name.ToLower()" == "fi-fi") {
e.target.setCustomValidity("Virheellinen sähköpostiosoite");
} else {
e.target.setCustomValidity("Invalid Email Address");
}
}
break;
case "PhoneNumber":
if (e.target.validity.valueMissing) {
if ("@Thread.CurrentThread.CurrentUICulture.Name.ToLower()" == "fi-fi") {
e.target.setCustomValidity("Anna puhelinnumerosi");
} else {
e.target.setCustomValidity("Please enter a Phone Number");
}
}
else if (e.target.validity.patternMismatch) {
if ("@Thread.CurrentThread.CurrentUICulture.Name.ToLower()" == "fi-fi") {
e.target.setCustomValidity("Virheellinen puhelinnumero");
} else {
e.target.setCustomValidity("Invalid Phone Number");
}
}
break;
}
}
};
elementsInput[i].oninput = function (e) {
e.target.setCustomValidity("");
};
}
for (var j = 0; j < elementsTextArea.length; j++) {
elementsTextArea[j].oninvalid = function (e) {
e.target.setCustomValidity("");
if (!e.target.validity.valid) {
switch (e.target.name) {
case "Details":
if ("@Thread.CurrentThread.CurrentUICulture.Name.ToLower()" == "fi-fi") {
e.target.setCustomValidity("Täytäthän yksityiskohdat");
} else {
e.target.setCustomValidity("Please enter Details");
}
break;
}
}
};
elementsTextArea[j].oninput = function (e) {
e.target.setCustomValidity("");
};
}
});
- möglich, Duplikat der HTML5-Formular-Attribut. Legen Sie die benutzerdefinierte Validierung Nachricht?
- Nicht ein Duplikat dieser Frage
- Ich hoffe, ich konnte Ihre Frage zu beantworten 🙂
- Ich bin mir nicht sicher, aber Sie probally zu verwenden.e.preventDefault() aber kann Sie nicht überprüfen Sie zuerst mit e.geben Sie, wenn es kommt aus dem popup?
- Wie würde ich prüfen, ob der Quelltext des popup?
- sehe es so : stackoverflow.com/questions/10753881/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Standard-browser Aktion ist die Anzeige eines popup-Meldung. Sollten Sie verwenden
e.preventDefault();
um zu verhindern, aufspringen.Theoretisch können Sie wirklich die
e.preventDefault()
direkt nachif (!e.target.validity.valid) {
aber ich bemerkte Sie nicht haben, um eindefault:
in Ihr Wechseln, also bin ich davon ausgegangen, Sie wollte es nicht gibt. In jedem Fall können Sie verwendene.preventDefault()
im inneren jedes einzelnencase:
wo Sie es wollen, oder man kann es nach derif
- Anweisung. Die jemals für Ihren Zweck besser.Wenn Sie mit Ihrer eigenen überprüfung können Sie verhindern, dass alle integrierten HTML5-browser-Validierung durch setzen des novalidate-Attribut der form "novalidate" wie
Diese wird dem browser mitteilen, um zu verhindern, dass die Anwendung HTML5-auto-Validierung.
Mit jQuery:
Gebäude aus @michael-angstadt Antwort. Sie können auch automatisch den
novalidate
- Attribut, um Ihre Formulare mit Hilfe dieses jQuery: