web-dev-qa-db-fra.com

Plugin de validation jQuery - Message personnalisé

Je suis nouveau sur JQuery et j'utilise le plugin de validation JQuery .

Je voudrais demander comment remplacer les messages par défaut pour afficher également le texte dans l'étiquette associée à l'élément de formulaire.

Je recevrais un message comme ceci:

Le mot de passe du champ est requis. au lieu de la valeur par défaut Ce champ est obligatoire.

Le code postal du champ doit contenir au moins 3 caractères. au lieu de la valeur par défaut Veuillez saisir au moins 3 caractères.

J'ai besoin de remplacer le comportement par défaut de ce plugin, car je ne veux pas spécifier de message personnalisé pour chaque élément pour chaque type de validation.

C'est possible?

31
Detonator
$("#signupform")
    .validate({
        rules: {
            password: "required",
            postcode: {
                required: true,
                minlength: 3
            }
        },
        messages: {
            password: "Field Password is required",
            postcode: {
                required: "Field PostCode is required",
                minlength: "Field PostCode must contain at least 3 characters" 
            }
    });
45
Shef

C'est ce que j'ai trouvé lorsque je cherchais la même chose il y a quelques jours. Malheureusement, je ne me souviens pas où je l'ai trouvé, donc je ne peux pas donner de crédit à la personne qui a écrit la réponse.

jQuery.extend(jQuery.validator.messages, {
    required:"This field is required.",
    equalTo:"Password fields do not match.",
    email:"Please enter a valid email.",
});
17
user828267

Il existe un moyen plus concis pour y parvenir.

Utilisez "data-msg" ou "data-msg - (rulename)" pour remplacer le message d'erreur par défaut pour une règle prédéfinie ou une règle personnalisée. (après la validation jQuery v1.11.0, actuellement v1.16.0)

<input id="pwd" name="pwd" type="password" value=""
       required
       data-msg-required="Field Password is required." />

<input id="postcode" name="postcode" type="text" value=""
       required
       data-msg-required="Field PostCode is required."
       minlength="3"
       data-msg-minlength="Field PostCode must contain at least 3 characters." />
8
detale

J'avais besoin de faire la même chose et j'ai fini par créer une méthode personnalisée afin que son message puisse être partagé sur plusieurs formulaires.

J'ai trouvé cette réponse dans une question Stack Overflow similaire: Comment pouvons-nous spécifier des règles pour le plugin de validation jquery par classe?

$.validator.addMethod(
    "newEmail", //name of a virtual validator
    $.validator.methods.email, //use the actual email validator
    "Custom error message"
);
4
Bill Keller

ajoutez ceci après le plugin:

jQuery.extend(jQuery.validator.messages, {
    required: "Your new default message",
    email: "That's not a valid email"
});

vous pouvez le mettre dans un fichier séparé si vous le souhaitez, mais assurez-vous qu'il est inclus après le plugin lui-même

1
Bojan Srbinoski