Validation personnalisée du champ obligatoire
J'ai un formulaire avec de nombreux champs de saisie. J'ai mis des validations html5
<input type="text" name="topicName" id="topicName" required />
lorsque je soumets le formulaire sans remplir cette zone de texte, il affiche un message par défaut comme
"Please fill out this field"
Quelqu'un peut-il m'aider à modifier ce message?
J'ai un code javascript pour le modifier, mais cela ne fonctionne pas
$(document).ready(function() {
var elements = document.getElementsByName("topicName");
for (var i = 0; i < elements.length; i++) {
elements[i].oninvalid = function(e) {
e.target.setCustomValidity("");
if (!e.target.validity.valid) {
e.target.setCustomValidity("Please enter Room Topic Title");
}
};
elements[i].oninput = function(e) {
e.target.setCustomValidity("");
};
}
})
Email de validations personnalisées
J'ai le formulaire HTML suivant
<form id="myform">
<input id="email" name="email" type="email" />
<input type="submit" />
</form>
Messages de validation que je veux aimer.
Champ obligatoire: Veuillez saisir une adresse
e-mail Mauvaise adresse e-mail: «testing @ .com» n'est pas une adresse e-mail valide. ( ici, l'adresse e-mail saisie affichée dans la zone de texte )
J'ai essayé ceci.
function check(input) {
if(input.validity.typeMismatch){
input.setCustomValidity("'" + input.value + "' is not a Valid Email Address.");
}
else {
input.setCustomValidity("");
}
}
Cette fonction ne fonctionne pas correctement, avez-vous un autre moyen de le faire? Ce serait apprécié.
javascript
jquery
html
Sumit Bijvani
la source
la source
Réponses:
Extrait de code
Étant donné que cette réponse a attiré beaucoup d'attention, voici un bel extrait de code configurable que j'ai trouvé:
Usage
→ jsFiddle
Plus de détails
defaultText
s'affiche initialementemptyText
s'affiche lorsque l'entrée est vide (a été effacée)invalidText
s'affiche lorsque l'entrée est marquée comme invalide par le navigateur (par exemple, lorsqu'il ne s'agit pas d'une adresse e-mail valide)Vous pouvez affecter une chaîne ou une fonction à chacune des trois propriétés.
Si vous affectez une fonction, elle peut accepter une référence à l'élément d'entrée (nœud DOM) et elle doit renvoyer une chaîne qui est alors affichée comme message d'erreur.
Compatibilité
Testé en:
Ancienne réponse
Vous pouvez voir l'ancienne révision ici: https://stackoverflow.com/revisions/16069817/6
la source
please fill out this field
pouvez-vous changer ce message enPlease enter email address
setCustomValidity()
des e-mails vides qu'après que l' événement de flou se soit déclenché une fois, il nous suffit donc de l'appeler au chargement du DOM. Voir l'exemple mis à jour / jsFiddle.if (input.value == "") {
, pour plutôt lireif (input.value.trim() == "") {
- fait l'affaire pour moi.Vous pouvez simplement y parvenir en utilisant l'attribut oninvalid, consultez ce code de démonstration
Démo Codepen: https://codepen.io/akshaykhale1992/pen/yLNvOqP
la source
oninput="setCustomValidity('')"
: stackoverflow.com/a/16878766/1729850HTML:
JAVASCRIPT:
Démo:
http://jsfiddle.net/patelriki13/Sqq8e/
la source
Essaye ça:
J'ai testé cela dans Chrome et FF et cela a fonctionné dans les deux navigateurs.
la source
<b>Error: </b> Incorrect email address
.setCustomValidity("")
n'aide pas. Y a-t-il un autre paramètre à définir? S'il vous plaît donnez votre avis.Mec, je n'ai jamais fait ça en HTML 5 mais je vais essayer. Jetez un œil à ce violon.
J'ai utilisé des événements et propriétés natifs jQuery, HTML5 et un attribut personnalisé sur la balise d'entrée (cela peut poser problème si vous essayez de valider votre code). Je n'ai pas testé dans tous les navigateurs mais je pense que cela peut fonctionner.
Voici le code JavaScript de validation de champ avec jQuery:
Agréable. Voici le formulaire html simple:
L'attribut
requiredmessage
est l'attribut personnalisé dont j'ai parlé. Vous pouvez définir votre message pour chaque champ obligatoire, car jQuery en obtiendra lorsqu'il affichera le message d'erreur. Vous n'êtes pas obligé de définir chaque champ directement sur JavaScript, jQuery le fait pour vous. Cette regex semble aller bien (au moins ça bloque votre[email protected]
! Haha)Comme vous pouvez le voir sur fiddle, je fais une validation supplémentaire de l'événement de formulaire d'envoi ( cela va aussi sur document.ready ):
J'espère que cela fonctionne ou vous aide de toute façon.
la source
data-
préfixe standard ; par exempledata-requiredMessage
. Avec jQuery, ceci est accessible avec$(element).data('requiredMessage')
; Je ne connais pas l'interface DOM standard par le haut de ma tête.Cela fonctionne bien pour moi:
et le formulaire avec lequel je l'utilise (tronqué):
la source
Vous pouvez le faire en configurant un écouteur d'événement pour «invalide» sur toutes les entrées du même type, ou juste une, selon ce dont vous avez besoin, puis en configurant le message approprié.
Le deuxième morceau du script, le message de validité sera réinitialisé, sinon il ne sera pas possible de soumettre le formulaire: par exemple, cela empêche le message d'être déclenché même lorsque l'adresse e-mail a été corrigée.
De plus, vous n'avez pas à configurer le champ de saisie comme requis, car le 'invalide' sera déclenché une fois que vous commencerez à taper dans l'entrée.
Voici un violon pour cela: http://jsfiddle.net/napy84/U4pB7/2/ J'espère que cela aide!
la source
Utilisez l'attribut "titre" dans chaque balise d'entrée et écrivez un message dessus
la source
Il suffit d'obtenir l'élément et d'utiliser la méthode setCustomValidity.
Exemple
la source
vous pouvez simplement utiliser l' attribut oninvalid = " , avec le bingding le this.setCustomValidity () eventListener!
Voici mes codes de démonstration! (Vous pouvez l'exécuter pour vérifier!)
lien de référence
http://caniuse.com/#feat=form-validation
https://www.w3.org/TR/html51/sec-forms.html#sec-constraint-validation
la source
Vous pouvez ajouter ce script pour afficher votre propre message.
Pour d'autres validations comme l'incompatibilité de modèle, vous pouvez ajouter une condition if else supplémentaire
comme
il existe d'autres conditions de validité comme rangeOverflow, rangeUnderflow, stepMismatch, typeMismatch, valid
la source