我正在使用剑道网格,并希望通过同一记录中的另一个字段验证一个字段的最小值。
意味着我的数据是这样的:-
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) {
}
},
但是我无法在minagvalidation函数中检索MinAgeThreshold的值。
任何帮助都将是非常感激的。
对
您可以尝试如下所示来提供自定义验证消息,并强制用户设置值大于基于同一剑道网格中其他输入字段的最小值。
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;
}
我想我可能有一个解决这种问题的方法。如果你想通过不同字段的值来设置字段的最大值,你可以将其添加到kendogrid的网格编辑方法中。
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);
}
}
});
这将设置MinAge输入的numerictTextBox为行(模型)的dataItem中的MinAgeThreshold的最小值。这也适用于step, max,等等。当您输入该字段时将触发编辑。所以如果初始值是0而你的MinAgeThreshold是别的值它就会切换到MinAgeThreshold