Comment modifier le message de langue jQuery Validator

9 réponses

Faire comme ceci:

$(document).ready(function() {
  $("form#login").validate({
    lang: 'en'  // or whatever language option you have.
  });
});

Si la langue que vous souhaitez d'alimentation n'est pas l'une des langues par défaut, puis faire ceci:

$.tools.validator.localize("fi", {
    '*'          : 'Virheellinen arvo',
    ':email'     : 'Virheellinen sähköpostiosoite',
    ':number'    : 'Arvon on oltava numeerinen',
    ':url'       : 'Virheellinen URL',
    '[max]'      : 'Arvon on oltava pienempi, kuin ',
    '[min]'      : 'Arvon on oltava suurempi, kuin ',
    '[required]' : 'Kentän arvo on annettava'
});

  $("form#login").validate({
    lang: 'fi'
  });

Voir ces instructions pour plus d'.

16
répondu Dave Sag 2013-08-02 06:13:56

Si vous regardez dans le répertoire "localisation", vous pouvez trouver différentes .les fichiers js qui cointiennent des messages d'erreur dans différentes langues. [quelque chose comme "messages_XX.js"]

choisissez le fichier de la langue dont vous avez besoin et ajoutez simplement la ligne suivante, dans la balise , après l'inclusion du jquery.valider.js

<script type="text/javascript" src="localization/messages_XX.js"></script>
30
répondu andre_lost 2011-08-01 10:17:33

La meilleure méthode est d'étendre le plugin comme celui-ci si nécessaire

$.extend($.validator.messages, {
    required: "my required message",
    ....
});
5
répondu astroanu 2014-12-09 15:59:07

Voici votre structure JSON dans votre script de validation initiale comme Alex a:

   rules: {
        accntTypeCL: {
            required: true,
        },
        accntNoCL: {
            required: true,
            minlength: 19,
            numberDash: true,
        }
    },                      
    messages : {
        accntTypeCL : {
            required : Messages.ERR_TEST,
        },
        accntNoCL : {
            required : Messages.ERR_TEST,
            numberDash : Messages.ERR_TEST,
            minlength : Messages.ERR_TEST2,
        },
    }

//This would be in your messages.js file... But you'll need to make sure you are using a Java backend or something that will pull the messages.js correctly
//For IBM worklight this worked great       

    Messages = {
// Add here your messages for the default language. 
// Generate a similar file with a language suffix containing the translated messages

ERR_TOPLEVEL : '<span role=\"presentation\">One or more of the required fields was left blank or is invalid.<\/span>',
//Test Messages for tracing
ERR_TEST: 'This be the test yar!',
ERR_TEST2: 'This be the test2 yar!'
};

de cette façon, vous pouvez réutiliser les mêmes fonctions, les mêmes méthodes supplémentaires, et les mêmes types d'erreurs et juste utiliser les bons messages.fichier js basé sur le langage html qui doit être détecté dans le navigateur ou si vous l'avez. Cette méthode fonctionne bien pour moi.

4
répondu isaac weathers 2017-05-23 12:02:56

jeter un regard à ma solution

jQuery.extend(jQuery.validator.messages, {
        required: abp.localization.localize("FormValidationMessageRequired"),//"This field is required.",
        remote: "Please fix this field.",
        email: abp.localization.localize("FormValidationMessageEmail"),//"Please enter a valid email address.",
        url: abp.localization.localize("FormValidationMessageUrl"),//"Please enter a valid URL.",
        date: abp.localization.localize("FormValidationMessageDate"),//"Please enter a valid date.",
        dateISO: "Please enter a valid date (ISO).",
        number:  abp.localization.localize("FormValidationMessageNumber"),//"Please enter a valid number.",
        digits: "Please enter only digits.",
        creditcard: "Please enter a valid credit card number.",
        equalTo:  abp.localization.localize("FormValidationMessageDataEquals"),//"Please enter the same value again.",
        accept: "Please enter a value with a valid extension.",
        maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
        minlength: jQuery.validator.format(abp.localization.localize("FormValidationMessageMinlength")),//jQuery.validator.format("Please enter at least {0} characters."),
        rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
        range: jQuery.validator.format("Please enter a value between {0} and {1}."),
        max: jQuery.validator.format(abp.localization.localize("FormValidationMessageMax")),//jQuery.validator.format("Please enter a value less than or equal to {0}."),
        min: jQuery.validator.format(abp.localization.localize("FormValidationMessageMin"))//jQuery.validator.format("Please enter a value greater than or equal to {0}.")
    });

et ce func abp.localization.localize(Key) renvoie la chaîne localisée basée sur la culture courante, cette fonction vient du framework que j'ai utilisé appelé aspnetboilerplate

pour plus d'info voir ce thread de débordement de la pile jQuery validation: changement de message d'erreur par défaut

3
répondu Basheer AL-MOMANI 2017-05-23 12:26:32

messages objet.

paires de clés/Valeurs définissant la coutume message. La clé est le nom d'un élément, valeur du message à afficher pour cet élément. Au lieu d'une plaine message Une autre carte avec des messages pour chaque règle peut être utilisée. Remplace l'attribut title d'un l'élément ou le message par défaut pour les méthode (dans cet ordre). Chaque message peut être une chaîne ou un rappel. Le callback est appelé dans le cadre du programme de validation et de avec la règle de l' paramètres comme le premier et le l'élément de la deuxième arugment, il doit retourner une Chaîne de caractères à afficher comme message.

Exemple

$(".selector").validate({
   rules: {
     name: "required",
     email: {
       required: true,
       email: true
     }
   },
   messages: {
     name: "Please specify your name",
     email: {
       required: "We need your email address to contact you",
       email: "Your email address must be in the format of name@domain.com"
     }
   }
})

Source.

1
répondu alex 2011-05-31 00:47:50

Vous pouvez aussi mettre les messages d'erreur directement dans la balise comme ceci:

<input required data-msg="Please fill this field">
<input data-rule-minlength="2" data-rule-maxlength="4" data-msg-minlength="At least two chars" data-msg-maxlength="At most fours chars">

Voir documentation

Si vous utilisez une sorte de localisation plugin, vous pouvez déplacer les messages dans des fichiers séparés. J'utilise ici i18n-2 (mnp module):

<input id="email" type="email" name="email" data-msg=__("pages.apply.form.email.errormsg.required"))

puis je mets mes fichiers de langue dans un dossier:

/locales
    da.json
    en.json

fr.json

"pages": {
        "apply": {
            "subtitle": "Apply here",
            "form": {
                    "email": {
                        "title": "Email",
                        "placeholder": "Your email address",
                        "warning": "NB! DER AFSENDES EN MAIL HERTIL",
                        "errormsg": {
                            "required": "Enter a valid email address"
                        }
                    }
             }
        }
 }
1
répondu olefrank 2016-04-21 10:44:19

il suffit d'entrer une valeur "required" dans le json qui définit la validation. vérifiez la source des démos, mais c'est dans la catégorie des messages

-1
répondu Jordan Wallwork 2011-05-31 01:02:02

Fin du jeu, mais si vous êtes en utilisant le même modèle pour plusieurs langues, vous pouvez le faire en ligne:

if($('html').attr('lang')=='he'){
    $('form').validate({
        messages: {
            email:  "חובה",
            phone:  "חובה",
            zip:    "חובה"
        }
    });
}else{
    $('form').validate({
        messages: {
            email:  "Required",
            phone:  "Required",
            zip:    "Required"
        }
    });
};
-2
répondu Heraldmonkey 2013-11-13 13:02:22