Динамически изменять сообщения об ошибках в Kendo UI validator?

Думаю у меня есть 2 текстовых поля. Могу ли я изменить там сообщения об ошибках в соответствии с текстовыми полями.

Вот пример.

1-е текстовое поле является полем электронной почты, и это обязательное поле. Поэтому я сохраняю сообщения об ошибках в массиве:

["this field is required", "enter a valid e mail"]

2 текстовое поле обязательно для заполнения. Его сообщение об ошибке:

["enter a valid value in the field"] 

но в кендо UI валидатор, как это...

  var validator = $("#formID").kendoValidator( 
       { messages : {
                     required : "this field is required",
                     email : "enter a valid email address"
       }
       }).data("kendoValidator"); 

Как я изменяю эти значения динамически в соответствии с сообщениями об ошибках текстовых полей??

1 ответ

Вы можете создать function для обоих required а также email настроить сообщения об ошибках в соответствии с полями ввода HTML.

<form id="myform">
    <input name="username" required /> <br />
    <input type="email" name="userEmail" required data-message="My custom email message" /> <br />
    <button>Validate</button>
</form>

Сценарий раздела:

<script>
     $("#myform").kendoValidator({
             messages: {
                 // defines a message for the 'custom' validation rule
                 custom: "Please enter valid value for my custom rule",

                 // overrides the built-in message for the required rule
                 required: function(input) {
                     return getRequiredMessage(input);
                 },

                 // overrides the built-in message for the email rule
                 // with a custom function that returns the actual message
                 email: function(input) {
                     return getMessage(input);
                 }
             },
             rules: {
               custom: function(input) {
                 if (input.is("[name=username]")) {
                     return input.val() === "Tom";
                 }
                 return true;
               }
             }
        });

        function getMessage(input) {
          return input.data("message");
        }
        function getRequiredMessage(input) {
           if (input.is("[name=username]")) {
                     return "User name is required";
                 }
            else
                 return input.attr("name") + " Field is Required";
        }
</script>

Jsfiddle

Здесь в getRequiredMessage Функция я настроил сообщение об ошибке на основе имени входа.

Я указал "Имя пользователя обязательно" для ввода имени пользователя. Вы можете предоставить сообщение об ошибке даже из массива, если хотите.

Другие вопросы по тегам