Подтвердить что ты не робот

Как изменить сообщение JQuery Validator

Используем JQuery Validator из http://bassistance.de/jquery-plugins/jquery-plugin-validation/. Как я могу сделать это так, чтобы сообщения были обычными, а не на английском языке.

4b9b3361

Ответ 1

Сделайте это так:

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

Если язык, который вы хотите предоставить, не является одним из языков по умолчанию, сделайте следующее:

$.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 $1',
    '[min]'      : 'Arvon on oltava suurempi, kuin $1',
    '[required]' : 'Kentän arvo on annettava'
});

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

Подробнее см. эти инструкции.

Ответ 2

Если вы посмотрите в "локализацию" каталога, вы можете найти разные .js файлы, которые объединяют сообщения об ошибках на разных языках. [что-то вроде "messages_XX.js" ]

Выберите файл нужного вам языка и просто добавьте следующую строку в тег после включения jquery.validate.js

<script type="text/javascript" src="localization/messages_XX.js"></script>

Ответ 3

Лучшим способом является расширение плагина, как это при необходимости

$.extend($.validator.messages, {
    required: "my required message",
    ....
});

Ответ 4

Вот ваша структура JSON в вашей начальной проверке script, например Alex имеет:

   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!'
};

Таким образом вы можете повторно использовать одни и те же функции, одни и те же дополнительные методы и те же типы ошибок и просто использовать правильный файл messages.js на основе языка html, который должен быть обнаружен в браузере, или же вы иметь это. Этот метод работал хорошо для меня.

Ответ 5

Посмотрите на мое решение

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}.")
    });

и этот func abp.localization.localize(Key) возвращает локализованную строку на основе текущей культуры, эта функция из фреймворка, который я использовал, называется aspnetboilerplate

для получения дополнительной информации см. этот поток Проверка jQuery: изменение сообщения об ошибке по умолчанию

Ответ 6

Вы также можете поместить сообщения об ошибках непосредственно в разметку следующим образом:

<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">

См. документация

Если вы используете какой-то плагин локализации, вы можете переместить сообщения в отдельных файлах. Здесь я использую i18n-2 (модуль npm):

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

Затем я помещаю свои языковые файлы в папку:

/locales
    da.json
    en.json

en.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"
                        }
                    }
             }
        }
 }

Ответ 7

Используйте объект messages.

Пара ключей/значений, определяющих пользовательские Сообщения. Ключ - это имя элемент, значение отображаемого сообщения для этого элемента. Вместо простой сообщение другая карта с конкретными могут использоваться сообщения для каждого правила. Переопределяет атрибут title элемент или сообщение по умолчанию для метод (в указанном порядке). Каждое сообщение может быть строкой или обратным вызовом. обратный вызов вызывается в области валидатор и с правилом как первый и элемент как второе средство, оно должен вернуть строку, отображаемую в качестве сообщение.

Пример

$(".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 [email protected]"
     }
   }
})

Источник.

Ответ 8

Если вы используете npm/yarn для управления вашими активами, вы можете просто импортировать файл локализации следующим образом (конечно, замените iso-код, здесь он французский):

import 'jquery-validation';
import 'jquery-validation/dist/localization/messages_fr';

Тогда используйте:

$form.validate({
    lang: 'fr',
});

Ответ 9

просто введите "обязательное" значение в json, которое определяет проверку. проверьте источник демо, но его в категории сообщений

Ответ 10

Поздно к игре, но если вы используете один и тот же шаблон для нескольких языков, вы можете сделать это inline:

if($('html').attr('lang')=='he'){
    $('form').validate({
        messages: {
            email:  "חובה",
            phone:  "חובה",
            zip:    "חובה"
        }
    });
}else{
    $('form').validate({
        messages: {
            email:  "Required",
            phone:  "Required",
            zip:    "Required"
        }
    });
};