如何执行复选框checkevent?

时间:2012-04-19 05:22:03

标签: extjs

我想在复选框中执行checkevent的帮助。这是我的代码:

View.js:

Ext.define('AM.view.shop.Bill',  
{  
    extend: 'Ext.form.Panel',  
    alias : 'widget.bil',  
    title: 'Complete Check Out',  
    defaultType:'textfield',  
    initComponent: function() {  

    this.items= [ 
    // Mailing Address  
    {   xtype: 'fieldset',  
        title: 'Mailing Address',  
        defaultType: 'textfield',  
        layout: 'anchor',  
        width:520,  
        defaults: {  
        anchor: '100%'  
    },  

    items: [{  
        fieldLabel: 'Street Address',  
        name: 'mailingStreet',
        billingFieldName: 'billingStreet',
        allowBlank: false  
    },  

    {   xtype: 'container',
        layout: 'hbox',
        items: [{
            xtype: 'textfield',
            fieldLabel: 'City',
            name: 'mailingCity',
            id:'mailingCity',
            billingFieldName: 'billingCity',
            flex: 1,
            allowBlank: false
        }]
    }]
},

// Billing Address
{
    xtype: 'fieldset',
    title: 'Billing Address',
    layout: 'anchor',
width:520,
    defaults: {
        anchor: '100%'
    },
    items: [{
        xtype: 'checkbox',
        name: 'billingSameAsMailing',
        boxLabel: 'Same as Mailing Address?',
        hideLabel: true,
        checked: true,
        style: 'margin-bottom:10px',
        id:'billingSameAsMailing',
    }, 

    {   xtype: 'textfield',
        fieldLabel: 'Street Address',
        name: 'billingStreet',
        //style: 'opacity:.3',
        disabled: true,
        allowBlank: false
     },

     {  xtype: 'container',
        layout: 'hbox',
        items: [{
            xtype: 'textfield',
            fieldLabel: 'City',
            name: 'billingCity',
            id:'billingCity',
            style: (!Ext.isIE6) ? 'opacity:.3' : '',
            flex: 1,
            disabled: true,
            allowBlank: false
            }]
        }]
    }]

    this.callParent(arguments);
    }
});

controller.js:

Ext.define('AM.controller.Shops', {
    extend: 'Ext.app.Controller',
    init: function() {
        this.control({
            'bil textfield[name=mailingCity]' : {
                change: function(textField) {   
                    var formpanel = Ext.ComponentQuery.query('bil')[0];
                    var copyToBilling = formpanel.down('[name=billingSameAsMailing]').getValue();

                     if (copyToBilling) {    
                         var city=formpanel.down('[name=mailingCity]').getValue();
                         formpanel.down('[name=billingCity]').setValue(city); 
                     }      
                 }      
             },

             'bil checkbox[name=billingSameAsMailing]': {
                 check: function(item, checked) {
                     alert(item);
                 }  
              }                     
          });  
     }  
});  

我使用相同的文本框方法,以获得用于执行事件的特定复选框 那个复选框。在文本框中,它正常工作,但在复选框的情况下它没有响应。

1 个答案:

答案 0 :(得分:0)

您只需尝试以下代码。它适用于我。

item.checked = true;