Comment modifier le message de langue jQuery Validator
Am using the JQuery Validator from http://bassistance.de/jquery-plugins/jquery-plugin-validation/<!--2. Comment puis-je faire en sorte que les messages soient personnalisés et pas en anglais.
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'.
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>
La meilleure méthode est d'étendre le plugin comme celui-ci si nécessaire
$.extend($.validator.messages, {
required: "my required message",
....
});
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.
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
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"
}
}
})
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"
}
}
}
}
}
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
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"
}
});
};