簡體   English   中英

使用“驗證程序”驗證“ Ext Js”表單字段

[英]'Ext Js' form field validation using 'validator'

嗨,我是'Ext JS'的新手(大約4天),必須編輯'Ext JS'表格。 該表格用於編輯現有條目。 因此,我必須以這種形式更新“項目名稱”字段,並且需要遵循以下條件。

  1. 用戶可以使用舊項目名稱提交表單(舊的舊項目名稱表示加載表單時的項目名稱)。
  2. 當用戶從建議下拉列表中選擇現有項目名稱時(舊項目名稱除外),需要顯示錯誤。

    此條件的基本思想是防止重復的項目名稱。

因此,我嘗試使用“驗證器”來執行此操作,但是我無法找到比較舊項目名稱和新項目名稱的方法。

  1. 有什么方法可以比較這些值?
  2. 驗證此字段的任何其他方法?

這是我到目前為止所做的...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM