簡體   English   中英

ExtJS:validitychange-從有效性檢查中排除隱藏的輸入字段

[英]ExtJS: validitychange - exclude hidden input fields from validity check

我有一個帶有兩個輸入字段“ test1”和“ test2”以及一個組合框的表單。 我想驗證此表單,輸入字段不應為空。 因此,我使用配置'allowBlank:false'和控制器方法'onFormValidityChanged'。 這很好。

現在,當我使用控制器方法“ onChangeCombo”動態更改組合框中的值時,我將隱藏輸入字段“ test2”。 另外,我設置了輸入字段'test2'的config'allowBlank:true'。 但是當隱藏的輸入字段“ test2”為空時,我的表單無效。

如何從有效性檢查中排除隱藏的輸入字段?

我使用的是ExtJS版本6.6。

謝謝您的提示,托馬斯

視圖:

    items : [{
        xtype : ' formpanel',
        trackResetOnLoad : true,            
        layout : {
            type : 'vbox',
            align : 'stretch'
        },
        items : [
        {
            xtype : ' textfield',
            name : 'test1'
            itemId : 'test1',
            allowBlank : false,
            fieldLabel : 'test1'
        },
        {
            xtype : ' combobox',
            name : 'combo',
            itemId : 'combo',
            store: myStore,
            listeners : {
                change : 'onChangeCombo'
            }
        },            
        {
            xtype : ' textfield',
            name : 'test2'
            itemId : 'test2',
            allowBlank : false,
            fieldLabel : 'test2'
        }],
        listeners : {
            validitychange : 'onFormValidityChanged'
        }
    }];

控制器:

onFormValidityChanged : function(form, valid) {
    var win, button;
    win = form.owner.up('window');
    button = win.down('[xtype=button]');
    button.setDisabled(!valid);
}, 

onChangeCombo : function(combobox) {
    var win, test2;
    win = combobox.up('window');
    test2 = win.down('textfield[itemId=test2]');
    test2.hide();
    test2.allowBlank = true;
}

要關閉驗證,只需禁用此隱藏的輸入即可。

test2.disable();

我也對你有一個建議:

  • 使用test2.setAllowBlank(true)代替test2.allowBlank = true

  • 不要使用諸如win.down(etc。)之類的引用,請使用引用和查找方法簽出ViewController選項

諾貝克的建議

test2.disable()

無法提供解決方案。 我不知道為什么

我沒有遵循dh117的formBind建議。 我解決了這個問題,如下所示:

test2 = win('textfield[itemId=test2]');
win.remove(test2);

謝謝您的提示,也感謝您的進一步提示,托馬斯

暫無
暫無

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

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