extjs中如何写代码才能让listeners同时监听combo的select事件和radio的check事件

解决方案 »

  1.   

    我监听combo的select事件的时候
    radio的check事件就失效了。。要我手动点一下radio。。然后监听事件才会被激活
      

  2.   

    Ext.onReady( function() {
    Ext.QuickTips.init();

     var comboCities = new Ext.form.ComboBox({             
                 valueField :"cityId",
                 displayField: "cityName",
                 mode: 'local',  
                 forceSelection: true,
                 hiddenName:'cityId',
                 editable: false,
                 triggerAction: 'all',
                 store : [[1,1],[2,2]],
                 allowBlank : true,
                 fieldLabel: '选择地区',
                 name: 'cityId',
                 width: 80,
                 listeners:{
                  "select":function(obj){
                  alert(obj.getValue());   //获取id为combo的值
                  }
                  }
     });   
     
     
      var form=new Ext.FormPanel({
                frame:true,
                width:550,
                monitorValid:true,//把有formBind:true的按钮和验证绑定
                layout:"form",
                labelWidth:55,
                title:"test",
                labelAlign:"right",
                renderTo:Ext.getBody(),
                items : [comboCities,{
                xtype:"radio",
                    boxLabel:"好",
                    labelSeparator:"",//去除分隔符“:”
                    name:"Sex",
                    inputValue:"woman",
                    anchor:"95%",
                    listeners : {
                     check : function(){
                     alert("d");
                     }
                    }
                }]
                });
    });
      

  3.   


    {
           xtype:'combo',
         hiddenId:'year',
                         hiddenName:'year',//提交到后台的input的name ,对应下面store里的''id,必须要填
                         name:'years',
                         id:'years',
         width : 100, 
         store : year,//填充数据 
        mode : 'remote',
        typeAhead: true,
          minChars:1,
        triggerAction : 'all',// 显示所有下列数据,一定要设置属性triggerAction为all 
        displayField : 'text',//显示文本 ,对应下面store里的'text',
        valueField : 'id',
        editable: false,//是否允许输入 
        listeners:{
                          "select":function(){
                                 ds.load({params:{year:Ext.getDom("year").value,month:Ext.getDom("month").value,showDate:'1'}}); 
                                 
                              }
                  },'-',{
             xtype:'radio',
             checked: true,
             boxLabel:'查看全部',
             name:'type',
              listeners:{
                          "check":function(checkbox, checked){
                          if(checked){
                               ds.load();  
                              
                               } 
                            }
                  }
          }
      

  4.   

    代码在上面无法同时监听,一旦点击了select方法再点击radio
    ds.load()就不会执行。说明没监听到
      

  5.   

    Ext.get('type').dom.checked=false
    忘记写了一句。在select事件里还有这么一句。