Javascript 使用“validator”进行“Ext Js”表单字段验证

Javascript 使用“validator”进行“Ext Js”表单字段验证,javascript,extjs,Javascript,Extjs,嗨,我对“Ext JS”非常陌生,大约4天,必须编辑“Ext JS”表单。该表单用于编辑现有条目。因此,我必须更新此表单中的“项目名称”字段,并需要遵循以下条件 用户可以使用旧项目名称old project提交表单 name表示加载表单时的项目名称 当用户从“建议”下拉列表中选择除旧项目名称之外的现有项目名称时,需要显示错误 此条件的基本思想是防止重复的项目名称 所以我试着用“验证器”来做这件事,但我找不到一种方法来比较旧的项目名称和新的项目名称 有什么方法可以比较这些值吗?? 是否有其他方法验

嗨,我对“Ext JS”非常陌生,大约4天,必须编辑“Ext JS”表单。该表单用于编辑现有条目。因此,我必须更新此表单中的“项目名称”字段,并需要遵循以下条件

用户可以使用旧项目名称old project提交表单 name表示加载表单时的项目名称

当用户从“建议”下拉列表中选择除旧项目名称之外的现有项目名称时,需要显示错误

此条件的基本思想是防止重复的项目名称

所以我试着用“验证器”来做这件事,但我找不到一种方法来比较旧的项目名称和新的项目名称

有什么方法可以比较这些值吗?? 是否有其他方法验证此字段??? 这就是我到目前为止所做的

_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: 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; 
    }