'Ext Js' 使用 'validator' 进行表单域验证
'Ext Js' form field validation using 'validator'
您好,我是 'Ext JS' 的新手(大约 4 天),必须编辑 'Ext JS' 表格。该表格用于编辑现有条目。所以我必须更新此表单中的 'project name' 字段并且需要遵循以下条件。
用户可以使用旧项目名称提交表单(old old project
名称表示加载表单时的项目名称)。
当用户select 现有项目名称从建议下拉(旧项目名称除外)时,需要显示错误。
此条件的基本思想是防止重复的项目名称。
所以我尝试用 'validator' 来做这个,但是我找不到比较旧项目名称和新项目名称的方法。
- 有什么方法可以比较这些值吗??
- 还有其他验证此字段的方法吗???
这是我到目前为止所做的...
_est.project.view.panel.updateprojectname.combox = function (projectdetails) {
var nstore = _est.project.view.panel.updateprojectnstore();
var combo = Ext.create('Ext.form.ComboBox', {
fieldLabel: _est.project.text.nameText,
store: nstore,
labelSeparator: ' ',
vtype: 'text',
afterLabelTextTpl: _est.afterLabelTextRequiredTpl,
msgTarget: 'side',
displayField: 'projectname',
valueField: 'projectname',
labelWidth: 130,
maxLength: 200
name: 'projectname',
allowBlank: false,
pageSize: true,
triggerAction: 'query',
autoSelect: true,
minChars: 0,
itemId : 'project-name-field',
value: Ext.htmlDecode(projectdetails.projectname),
hideTrigger: true,
anchor: '95%',
validator: function(oldValue) {
var existnstore = Ext.StoreMgr.lookup("ptoject-project-names-get-store");
if(existnstore){
var nstore = existnstore.findExact('projectname',oldValue);
if(nstore < 0){
return true;
}else{
return 'Job name already exist.';
}
}
},
listConfig: {
getInnerTpl: function () {
return '<a class="search-item">' +
'<span>{projectstate}</span>' +
'{projectname}' +
'</a>';
}
},
});
return combo;
}
对此有任何建议或意见 :) 提前致谢..
我更改了 'validator' 函数,这对我有用
validator: function(Value) {
var existname = projectdetails.projectname;
if(Value !== existname){
var existnamestore = Ext.StoreMgr.lookup("update-ptoject-project-names-get");
if(existnamestore){
var namestore = existnamestore.findExact('projectname',Value);
if(namestore < 0){
return true;
}else{
return 'Job name already exist. Please select different job name.';
}
}
}
return true;
}
您好,我是 'Ext JS' 的新手(大约 4 天),必须编辑 'Ext JS' 表格。该表格用于编辑现有条目。所以我必须更新此表单中的 'project name' 字段并且需要遵循以下条件。
用户可以使用旧项目名称提交表单(old old project 名称表示加载表单时的项目名称)。
当用户select 现有项目名称从建议下拉(旧项目名称除外)时,需要显示错误。
此条件的基本思想是防止重复的项目名称。
所以我尝试用 'validator' 来做这个,但是我找不到比较旧项目名称和新项目名称的方法。
- 有什么方法可以比较这些值吗??
- 还有其他验证此字段的方法吗???
这是我到目前为止所做的...
_est.project.view.panel.updateprojectname.combox = function (projectdetails) {
var nstore = _est.project.view.panel.updateprojectnstore();
var combo = Ext.create('Ext.form.ComboBox', {
fieldLabel: _est.project.text.nameText,
store: nstore,
labelSeparator: ' ',
vtype: 'text',
afterLabelTextTpl: _est.afterLabelTextRequiredTpl,
msgTarget: 'side',
displayField: 'projectname',
valueField: 'projectname',
labelWidth: 130,
maxLength: 200
name: 'projectname',
allowBlank: false,
pageSize: true,
triggerAction: 'query',
autoSelect: true,
minChars: 0,
itemId : 'project-name-field',
value: Ext.htmlDecode(projectdetails.projectname),
hideTrigger: true,
anchor: '95%',
validator: function(oldValue) {
var existnstore = Ext.StoreMgr.lookup("ptoject-project-names-get-store");
if(existnstore){
var nstore = existnstore.findExact('projectname',oldValue);
if(nstore < 0){
return true;
}else{
return 'Job name already exist.';
}
}
},
listConfig: {
getInnerTpl: function () {
return '<a class="search-item">' +
'<span>{projectstate}</span>' +
'{projectname}' +
'</a>';
}
},
});
return combo;
}
对此有任何建议或意见 :) 提前致谢..
我更改了 'validator' 函数,这对我有用
validator: function(Value) {
var existname = projectdetails.projectname;
if(Value !== existname){
var existnamestore = Ext.StoreMgr.lookup("update-ptoject-project-names-get");
if(existnamestore){
var namestore = existnamestore.findExact('projectname',Value);
if(namestore < 0){
return true;
}else{
return 'Job name already exist. Please select different job name.';
}
}
}
return true;
}