Par exemple, j'ai un textfield
. Le champ est obligatoire, seuls des chiffres sont requis et la longueur de la valeur doit être égale à 10. Lorsque j'essaie de soumettre un formulaire avec une valeur de longueur égale à 5, le message d'erreur par défaut apparaît: Please match the requested format
<input type="text" required="" pattern="[0-9]{10}" value="">
J'ai trouvé un bug sur Ankur qui répond et je l'ai corrigé avec cette correction:
<input type="text" pattern="[a-zA-Z]+"
oninvalid="setCustomValidity('Plz enter on Alphabets ')"
onchange="try{setCustomValidity('')}catch(e){}" />
Le bogue observé lorsque vous définissez des données d'entrée non valides, corrigez ensuite l'entrée et envoyez le formulaire. Oops! tu ne peux pas faire ça. Je l'ai testé sur firefox et chrome
Lorsque vous utilisez pattern =, tout ce que vous mettez dans l'attribut du titre sera affiché. Aucun JS requis n'est nécessaire:
<input type="text" required="" pattern="[0-9]{10}" value="" title="This is an error message" />
<input type="text" pattern="[a-zA-Z]+"
oninvalid="setCustomValidity('Plz enter on Alphabets ')" />
J'ai trouvé ce code dans un autre post.
HTML:
<input type="text" pattern="[0-9]{10}" oninvalid="InvalidMsg(this);" name="email" oninput="InvalidMsg(this);" />
JAVASCRIPT:
function InvalidMsg(textbox) {
if(textbox.validity.patternMismatch){
textbox.setCustomValidity('please enter 10 numeric value.');
}
else {
textbox.setCustomValidity('');
}
return true;
}
Pour empêcher le message de validation du navigateur d'apparaître dans votre document, avec jQuery:
$('input, select, textarea').on("invalid", function(e) {
e.preventDefault();
});
vous pouvez supprimer cette alerte en procédant comme suit:
<input type="text" pattern="[a-zA-Z]+"
oninvalid="setCustomValidity(' ')"
/>
il suffit de définir le message personnalisé sur un espace vide
vous pouvez les changer via l'API de validation de contrainte: http://www.w3.org/TR/html5/constraints.html#dom-cva-setcustomvalidity
si vous voulez une solution simple, vous pouvez vous rendre sur civem.js, Messages d'erreur relatifs à la validation des entrées personnalisées. Téléchargez la version JavaScript ici: https://github.com/javanto/civem.js démonstration en direct ici: - http://jsfiddle.net/hleinone/njSbH/
SetCustomValidity vous permet de modifier le message de validation par défaut. Voici un exemple simple d'utilisation.
var age = document.getElementById('age');
age.form.onsubmit = function () {
age.setCustomValidity("This is not a valid age.");
};
J'ai trouvé un bug sur la réponse de Mahoor13, il ne fonctionne pas en boucle et je l'ai donc corrigé avec cette correction:
HTML:
<input type="email" id="eid" name="email_field" oninput="check(this)">
Javascript:
function check(input) {
if(input.validity.typeMismatch){
input.setCustomValidity("Dude '" + input.value + "' is not a valid email. Enter something Nice!!");
}
else {
input.setCustomValidity("");
}
}
Il fonctionnera parfaitement en boucle.
J'ai trouvé un moyen accidentellement Maintenant: vous pouvez avoir besoin d'utiliser ceci: data-error: ""
<input type="username" class="form-control" name="username" value=""
placeholder="the least 4 character"
data-minlength="4" data-minlength-error="the least 4 character"
data-error="This is a custom Errot Text fot patern and fill blank"
max-length="15" pattern="[A-Za-z0-9]{4,}"
title="4~15 character" required/>
C’est un très bon lien que j’ai trouvé sur la vérification de divers attributs des validations html5.
https://dzone.com/articles/custom-validation-messages
J'espère que ça aide quelqu'un.
Comme vous pouvez le voir ici:
html5 oninvalid ne fonctionne pas après avoir corrigé le champ de saisie
Est-ce bien que vous le mettiez de cette façon, car lorsque vous corrigez l'erreur, le message d'avertissement disparaît.
<input type="text" pattern="[a-zA-Z]+"
oninvalid="this.setCustomValidity(this.willValidate?'':'your custom message')" />
Pour définir un message d'erreur personnalisé pour l'utilisation de la validation HTML 5,
oninvalid="this.setCustomValidity('Your custom message goes here.')"
et pour supprimer ce message lorsque l'utilisateur entre une utilisation valide des données,
onkeyup="setCustomValidity('')"
J'espère que cela fonctionne pour toi. Prendre plaisir ;)
C'est un travail pour moi dans Chrome
<input type="text" name="product_title" class="form-control"
required placeholder="Product Name" value="" pattern="([A-z0-9À-ž\s]){2,}"
oninvalid="setCustomValidity('Please enter on Producut Name at least 2 characters long')"
vous pouvez simplement utiliser "novalidate" à partir de la balise <form>