0

ドロップダウンリストがあります。ドロップ ダウンから日付オプションを選択すると、テキスト ボックスのユーザー入力は mm/dd/yyy の形式である必要があります。それ以外の場合は、アラートをスローします。ext jsで同じことを達成するための提案。

4

3 に答える 3

2

シッダールス、

これを見てください。フレームワークに従って、このコードを最適化できます。あなたの質問の例を次のように作成しました。

var dateVar = {
        xtype     : 'datefield',
        name      : 'name',
        fieldLabel: 'Date',
        emptyText: 'mm/dd/yyyy',
        altFormats: 'm/d/Y',
        submitFormat: 'm/d/Y',
        format: 'm/d/Y',
        listeners: {
            blur: function(field) {
                if( ! field.isValid()) {
                    alert('Date is invalid!');
                }
            }
        }
    };
Ext.create('Ext.form.Panel',{
    id : 'editTask',
    renderTo : Ext.getBody(),
    items : [{
        xtype : 'combo',
        name : "type",
        fieldLabel : 'Type',
        store : ['DATE', 'NUMBER', 'TEXT'],
        width : 500,
        emptyText : "Select..",
        listeners : {
            change : selectionChanged
        }
    }, { 
        xtype: 'fieldcontainer',
        id :  'datefiledContainer',
    }]
});

function selectionChanged(combo){
    var dateVarCont = Ext.getCmp("datefiledContainer");
        dateVarCont.removeAll();
    if(combo.value == "DATE"){
        dateVarCont.add([dateVar]);
    }else{
        var field = {
            xtype : combo.value.toLowerCase() + "field",
            name : combo.value,
            fieldLabel : combo.value,
            width : 500
        }
        dateVarCont.add([field]);
    }

};

次のリンクで実際の例を見つけることができます。

http://jsfiddle.net/narendrakurapati/gDYYw/5/

ありがとうございました、

ナンドゥ

于 2013-08-14T04:56:21.130 に答える