Проверка поля столбца Kendo-Grid

Я работаю над заполнением кендо-сетки данными API, но добавление проверки в одно поле автоматически работает и для всех остальных полей.

Вот схема внутри kendo-dataSource:

schema: {
                   model: {
                       id : "id",
                       fields: {
                           id: { editable: false, type: 'number'},
                           name: { editable: true, type : "string" },
                           unique_url: { editable: true , type: 'string'},
                           image_url : { editable: true, type : "string" },
                           title: {type : "string", validation: {
                                                required: true,
                                                validateTitle: function (input) {
                                                    console.log("I am inside validation",input.val());
                                                    if (input.val().length > 5) {
                                                       input.attr("data-validateTitle-msg", "Max length exceeded 5 characters only");
                                                       return false;
                                                    }    

                                                    return true;
                                                }
                                            }
                                            },
                           body: { editable: true, type : "string",validation: { max: 90, required: true, message : "Maximum characters should be 90"} },
                           adaccount_id: { editable: false, type: 'number'}
                       }
                   }
                },  

Здесь я добавил проверку для поля заголовка, но она вызывается и для других полей. Я добавляю один снимок проверки --- введите здесь описание изображения

Помогите, пожалуйста, найти в нем ошибки.


person Anil Kumar Arya    schedule 10.07.2014    source источник


Ответы (3)


На самом деле в вашем коде нет никакой ошибки, это больше похоже на ошибку в дизайне проверки Kendo Grid. Даже если вы укажете функцию проверки только в поле title, она будет запускать проверку глобально для любого поля ввода, которое вы редактируете.

В validateTitle вам нужно отфильтровать, на каком входе вы хотите, чтобы функция проверки выполнялась. Что-то вроде этого:

if (input.is("[name='title']") && input.val().length > 5) {
    input.attr("data-validateTitle-msg", "Max length exceeded 5 characters only");
    return false;
}

Если вам нужна живая работающая демонстрация, вы всегда можете обратиться к онлайн-демонстрациям Telerik, которые можно редактировать, что очень удобно для игры с вещами. Вот демонстрация пользовательской проверки. где они аналогичным образом должны фильтровать ввод для имени поля.

person gitsitgo    schedule 10.07.2014
comment
ошибка в дизайне проверки Kendo Grid - вы попали туда по голове! Дизайн полностью сломан! - person Gerry; 06.11.2020

введите здесь описание изображения

вам нужна просто обязательная проверка поля, просто добавьте атрибуты свойств модели представления

[Required(ErrorMessage ="CountryCode is Mandatory")]
        public virtual string CountryCode
        {
            get;
            set;
        }
person Rajakrishna    schedule 20.01.2017

Мы можем легко установить максимальную длину, используя этот код, он не позволит пользователю ввести больше символов, чем указано.

  model: {
                    id: "CLASSID",
                    fields: {
                        CLASSID: { type: "number" },
                        CLSNAME: { type: "string" },
                        CLSFLAG: {
                            type: "string", validation: {
                                required: true,maxlength:"3"
                            }
                        },
                        CLSSTATUS: { type: "boolean" }
                    }
                }
person Prince Prasad    schedule 23.09.2018