Плагин проверки Jquery addMethod с локализацией - PullRequest
1 голос
/ 10 ноября 2010

Я прочитал это на веб-сайте jquery:

message (Необязательно) String, Function
Сообщение по умолчанию, отображаемое для этого метода.Может быть функцией, созданной jQuery.validator.format (value).Когда значение не определено, используется уже существующее сообщение (удобно для локализации), в противном случае должны быть определены сообщения, специфичные для поля.

Я добавил такой метод:

$.validator.addMethod("postalCode", function(value, element) {
return this.optional(element) || /^[0-9\-]+$/i.test(value);
});

Затем в моем файле локализации у меня есть:

postalCode: jQuery.validator.format("blabla")

Тем не менее, "blabla" никогда не предполагается.

Я также пытался передать jQuery.format () как сообщениеАргумент:

$.validator.addMethod("postalCode", function(value, element) {
return this.optional(element) || /^[0-9\-]+$/i.test(value);
}, jQuery.format());

Не повезло.

Как это работает?

Большое спасибо, MEM

Ответы [ 3 ]

1 голос
/ 10 ноября 2010

Примерно так:

$.validator.addMethod("postalCode", function(value, element) {
return this.optional(element) || /^[0-9\-]+$/i.test(value);

Должно работать. Если вы пропустите это сообщение, оно получит это сообщение из вашего файла сообщений локализации.

Отличный класс здесь. :)

0 голосов
/ 05 сентября 2016

Если вы хотите, например, проверку «customPassword».

  1. Создание файлов .js с кодом локали в конце (messages_en.js, messages_de.js).
  2. Включить файл в зависимости от выбранного языка приложения.
  3. Добавить переводческие сообщения, подобные этому:

$.extend( $.validator.messages, {
	customPassword: "One number, small and big letter and min 8 chars.",
	required: "This field is required.",
	remote: "Please fix this field."
});
Затем добавьте метод со вторым параметром "$ .validator.messages.customPassword" вместо строкового сообщения.

jQuery.validator.addMethod("customPassword", function(value, element, params){
    return this.optional(element) || (value.match(/((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,50})/));
}, $.validator.messages.customPassword);
0 голосов
/ 28 декабря 2011

В методе $ .validator.addMethod () последний необязательный параметр - это постоянное сообщение по умолчанию в виде текста в кавычках.Вместо этого вы должны использовать jQuery.validator.format ("... {0} ... {1} ...") в случае, если определенный обработчик имеет параметры:

addMethod("methodName", function(value, element, params){

, которые могут быть выведеныв сообщении об ошибке, заменяя маску "{N}" (вот для чего нужна функция "format"), где N - номер параметра, если передано несколько из них.Для правила ig «minlength: 10» означает, что «10» является значением третьей переменной в функции-обработчике.

Если вы не укажете сообщение по умолчанию, его можно определить в разделе «сообщения»:

,messages : {
   someField1 : {methodName:"error message"},
   someField2 : {methodName:$.validator.messages.custom_mess}
}

Желательно включить js-код в следующей последовательности:

  1. плагин "validate"
  2. инструкции "addMethod"
  3. файл "локализации"
  4. ваш код onLoad с $ ('# someForm'). validate ({...})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...