我怎么能改变名为bytecnt的值

时间:2014-09-22 07:44:37

标签: extjs4

items: [{
    rowspan:3,
    columnWidth: 0.5,
    margin: '10 10 10 10',
    xtype: 'fieldset',
    title:'SMS',
    enableKeyEvents: true,
    items: [{
        xtype:'textarea',
        width: 200,
        height: 160,
        id: 'content',
        value: '',
        enableKeyEvents: true,
        listeners: {
            keyup: function(form, e) {
            var cnt2;
            var len2;
            var han2;
            var varCont;
            len2 = 0;
            han2 = 0;
            varCont = this.value;

            for( cnt2 = 0 ; cnt2 < varCont.length; cnt2++ ){
                if( varCont.charCodeAt(cnt2) > 255 ){
                    len2 += 2;
                    han2 += 2;
                }else{
                    len2 ++;
                }
            }
            Ext.getCmp('bytecnt').setValue(len2);  //here is problem 
            }//keyup
        }//listener

    },{
        xtype:'text',
        html:"<input id='bytecnt' name='bytecnt' width='20' value='1'>",
        width: 200,
        height:20
    }]

1 个答案:

答案 0 :(得分:0)

Ext.getCmp()用于按ID查找组件。由于输入字段不是组件(而是组件的HTML),而只是一个HTML元素,因此可以使用Ext.get()来检索它。但请记住,由于您使用Ext.get()检索的输入字段不是组件,因此setValue()也不起作用。

但是,为什么使用带有文本输入字段的HTML配置的xtype:text?为什么不使用xtype:'textfield'并允许Ext JS为您管理这些东西?您仍然可以在其上配置您需要的所有其他内容,但随后可以作为组件与其进行交互。