我已经使用jsGrid数周了,并且做得很好。 但是,我在定位验证消息方面遇到了问题。 我需要将它们放置在输入单元格下方,而不是在警报窗口中显示标准消息。
如上图所示,我应该验证输入的Revision值是否遵循特定的模式,并在无效时返回一条消息,该消息现在显示在警报窗口中。 但是,我希望此消息显示在修订版输入本身下,如下图所示。
消息还应包含根据输入值驱动的动态处理的参数。
简而言之,我想要两件事,
1)在输入下方的单元格中插入验证消息 2)将从输入值驱动的动态参数传递给消息。
以下为我的消息来源,希望我能从您那里得到一些提示。 预先谢谢你。
fields : [
{
name : "id",
width : "5%",
type : "number",
editing: false,
readonly : true
}, {
name : "keyword",
width : "15%",
type : "text",
editing: true,
readonly : true,
}, {
name : "result",
width : "20%",
type : "text",
editing: false,
readonly : true
},
{
name : "queryCount",
width : "5%",
type : "number",
editing: false,
readonly : true
}, {
name : "trueFalse",
type : "select",
width : "5%",
items : ["","true","false"],
editTemplate: function (value,item) {
var grid = this._grid;
var $result = jsGrid.fields.select.prototype.editTemplate.call(this);
var trueFalseIndex = 4;
var desiredValue = item.trueFalse;
grid.option("fields")[trueFalseIndex].editControl.val(desiredValue);
$result.on("change", function() {
var selectedValue = $result.val();
var revisionFieldIndex = 5;
if(selectedValue==2){
var desiredValue = item.result;
grid.option("fields")[revisionFieldIndex].editControl.val(desiredValue);
grid.option("fields")[revisionFieldIndex].editControl.attr("disabled",false);
}else{
grid.option("fields")[revisionFieldIndex].editControl.val("");
grid.option("fields")[revisionFieldIndex].editControl.attr("disabled",true);
}
});
return $result;
},
width : "auto",
},
{
name : "revision",
type : "text",
width : "20%",
editTemplate: function(value, item) {
var $result = jsGrid.fields.text.prototype.editTemplate.apply(this, arguments);
var tf = false;
if(item.trueFalse==2){
tf = false;
}else{
tf = true;
}
$result.prop("disabled", tf);
return $result;
},
validate:{
validator : function(value, item, args){
var tokenTf = tokenCheck(value, item.keyword);
var tagTf = tagCheck(value);
return tokenTf==true && tagTf==true;
},
message : function(value, item){
return value;
}
}
}, {
name : "note",
type : "text",
width : "15%"
},
{
type : "control",
width : "10%",
deleteButton: false,
}
],