我正在使用ExtJS构建一个允许轻松编辑数据库的Web应用程序。
我想限制某些字段的字符数。所以我添加了validation
,如下所示。它似乎工作,如果它不符合要求,没有数据持续存在。但没有消息告诉用户出了什么问题。
Ext.onReady(function() {
var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit : 1
});
var toolbar = Ext.create('Ext.toolbar.Toolbar', {
// [snip]
});
// Set up a model to use in our Store
var mysource = Ext.define('Source', {
extend : 'Ext.data.Model',
fields : [ {
name : 'id',
type : 'int'
}, {
name : 'firstname',
type : 'string'
} ],
validations: [{type: 'length', field: 'firstname', max: 10}]
});
var myStore = Ext.create('Ext.data.JsonStore', {
model : 'Source',
idProperty : 'id',
proxy : {
type : 'ajax',
api : {
// [snip]
},
reader : {
type : 'json',
root : 'data',
successProperty: 'status'
}
},
autoLoad : true
});
myStore.load();
Ext.tip.QuickTipManager.init();
// create the Grid
var grid = Ext.create('Ext.grid.Panel', {
plugins : [ Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit : 1
}) ],
dockedItems : toolbar,
store : myStore,
stateful : true,
stateId : 'stateGrid',
columns : [ {
text : 'ID',
flex : 1,
sortable : true,
dataIndex : 'id'
}, {
text : 'Name',
flex : 1,
sortable : true,
dataIndex : 'firstname',
editor : {
xtype : 'textfield'
}
} ],
height : 350,
width : 600,
title : 'View / Edit Names',
renderTo : 'nameGrid'
});
});
我希望所有这些都是明智的,我已经删除了不相关的东西。我不在乎错误消息有多漂亮,但是在验证失败的情况下我需要显示一条消息(在这种情况下名称太长)。
答案 0 :(得分:2)
有一个属性lengthMessage
用于验证。我认为这就是你要找的东西。
就个人而言,我没有在模型上使用验证。
我在表单字段和编辑器上使用了VTypes
,并且始终显示消息。