2

Я использую сетку Kendo и хочу проверить значение min одного поля на другое поле из той же записи.Kendo UI Grid inline edit определить пользовательские значения для минимальной проверки

Значение мои данные, как это: -

var courses = [{ 
    CourseID : 1, 
    CourseName : "iPhone", 
    MinAge: 12, 
    MaxAge : 22, 
    MinAgeThreshold : 10, 
    MaxAgeThreshold : 30, 
    StartDate: "12/10/2014", 
}, 
{ 
    CourseID : 2, 
    CourseName : "Android", 
    MinAge: 12, 
    MaxAge : 22, 
    MinAgeThreshold : 10, 
    MaxAgeThreshold : 30, 
    StartDate: "12/10/2014", 
}] 

, и я хочу использовать значение MinAgeThreshold в проверке MinAge в мин значение, что-то вроде этого: -

schema: { 
       model: { 
       id: "CourseID", 
       fields: { 
        CourseID: { editable: false, nullable: true }, 
        StartDate: { editable: false, nullable: true }, 
        CourseName: { editable: false, nullable: true }, 
        MinAgeThreshold: { editable: false, nullable: true }, 
        MinAge: { type: "number", validation: { required: true, min: MinAgeThreshold}      }, 
        MaxAge: { type: "number", validation: { required: true, min: 1} }, 

       } 

Возможно ли это каким-то образом?

Я пытался использовать в пользовательской функции проверки, как этот

MinAge: { 
           type: "number", 
           validation: { 
            required: true, 
            minagevalidation: function (input) { 
           } 
          }, 

, но я не смог получить значения MinAgeThreshold в функции minagevalidation.

Любая помощь была бы принята с благодарностью.

С уважением

ответ

1

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

MinAge: { type: "number", 
        validation: { 
        required: true, 
        MinAgevalidation: function (input) { 
    if(input.is("[name='MinAge']") &&(parseInt($("input[type='text'][name='MinAge']").val()) < parseInt($("input[type='text'][name='UnitPrice']").val()))){ 
    input.attr("data-MinAgevalidation-msg", "MinAge should greater than MinAge threshold"); 

      return false; 
    } 

    return true; 
    } 

sample jsfiddle to set minimum value of one field based on other field's value .

0

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

var grid = $("#grid").kendoGrid({ 
    edit: function(e){ 
     if (e.container.find("input[data-find='value:MinAge']).length != 0){ 
      var numericTextBox = e.container.find("input[data-find='value:MinAge']).data("kendoNumericTextBox"); 
      numericTextBox.min(e.model.MinAgeThreshold); 
     } 
    } 
}); 

Это позволит установить numerictTextBox на входе в MinAge мин от MinAgeThreshold, который находится в DataItem части строки (модели). Это работает с шагом, max и т. Д. Редактирование запускается при вводе поля. Поэтому, если начальное значение равно 0, а ваш MinAgeThreshold - это что-то еще, он переключится на MinAgeThreshold.

 Смежные вопросы

  • Нет связанных вопросов^_^