var addFieldSet = new Ext.form.FieldSet({
title: '<?=$_lang["hr_set_field"]?>',
autoHeight: true,
//defaults: {width: 100},
defaultType: 'textfield',
items: [
{
fieldLabel: '<?=$_lang["hr_field_name"]?>',
name: 'name',
allowBlank:false
},

new Ext.form.ComboBox({
fieldLabel: '<?=$_lang['hr_field_type']?>',
hiddenName:'f_type',
editable: false,
store: new Ext.data.SimpleStore({
fields: ['value', 'text'],
data : [[1,'<?=$_lang['hr_field_input_text']?>'],[2,'<?=$_lang['hr_field_input_textarea']?>'],[3,'<?=$_lang['hr_field_time_select']?>']]
}),
valueField:'value',
displayField:'text',
typeAhead: true,
mode: 'local',
triggerAction: 'all',
selectOnFocus:true,
allowBlank:false,
listeners:{
'select': function(){
var val = this.value;
changeDefaultCtrl(val);
//这里我不知道该怎么改变。

}
} }),当listener触发的时候。动态添加下面这一个item 在这个fieldset中。var item = {
fieldLabel: 'Start Date',
name: 'startdt',
id: 'startdt',
xtype: 'datefield',
width:125,
format:"Y/m/d",
readOnly:true 
}
小弟帮人擦屁股,求达人帮忙

解决方案 »

  1.   

    结果是这样var addFieldSet = new Ext.form.FieldSet({
                title: '<?=$_lang["hr_set_field"]?>',
                autoHeight: true,
                //defaults: {width: 100},
                defaultType: 'textfield',
                items: [
                    {
                        fieldLabel: '<?=$_lang["hr_field_name"]?>',
                        name: 'name',
                        allowBlank:false
                    },
                    
                    new Ext.form.ComboBox({
                        fieldLabel: '<?=$_lang['hr_field_type']?>',
                        hiddenName:'f_type',
                        editable: false,
                        store: new Ext.data.SimpleStore({
                            fields: ['value', 'text'],
                            data : [[1,'<?=$_lang['hr_field_input_text']?>'],[2,'<?=$_lang['hr_field_input_textarea']?>'],[3,'<?=$_lang['hr_field_time_select']?>']]
                        }),
                        valueField:'value',
                        displayField:'text',
                        typeAhead: true,
                        mode: 'local',
                        triggerAction: 'all',
                        selectOnFocus:true,
                        allowBlank:false,
                        listeners:{
                            'select': function(){
                                var val = this.value;
                                //这里我不知道该怎么改变。
                                    当this.value=3 时 对象变成
                            }
                        }                }),
             {
                fieldLabel: 'Start Date',
                name: 'startdt',
                id: 'startdt',
                xtype: 'datefield',
                width:125,
                format:"Y/m/d",
                readOnly:true         
            }
      

  2.   

    先写好一个item
     var item = {
                fieldLabel: 'Start Date',
                name: 'startdt',
                id: 'startdt',
                xtype: 'datefield',
                width:125,
                format:"Y/m/d",
                readOnly:true 
     }
     listeners:{
            'select': function(){
                var val = this.value;
                changeDefaultCtrl(val);
                //这里我不知道该怎么改变。
                addFieldSet.add(item );
                addFieldSet.tb.doLayout();
            }
        }
      

  3.   


    listeners:{
            'select': function(){
                var val = this.value;
                //这里我不知道该怎么改变。
                if(val==3){
                    addFieldSet.add(item );
                    addFieldSet.tb.doLayout();
                }
            }
        }
      

  4.   

    楼上的,还有一个问题 addFieldSet.items.each(function (){
    if(this.name == 'f_default'){
    //addFieldSet.items[i].destory();
    addFieldSet.remove(addFieldSet.findById('f_default'));
    //addFieldSet.insert( i, item );
    }
    i++;
    })控件被删除了,但是控件标题还保留着在。
      

  5.   

    这样只能删除文本框。你用ff看一下他的dom结构。再remove掉