2014-09-22 5 views
0
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 
    }] 

답변

0

Ext.getCmp()는 ID별로 구성 요소를 찾는 것입니다. 입력 필드는 구성 요소가 아니라 구성 요소의 HTML이지만 HTML 요소 만 있으므로 Ext.get()을 사용하여 검색 할 수 있습니다. 그러나 Ext.get()을 사용하여 검색하는 입력 필드는 구성 요소가 아니기 때문에 setValue()도 작동하지 않습니다.

왜 텍스트 입력 필드의 HTML 구성과 함께 xtype : text를 사용하고 있습니까? 왜 그냥 xtype : 'textfield'를 사용하지 않고 Ext JS가 당신을 위해 그걸 관리 할 수있게 해줄까요? 필요한 모든 것을 구성 할 수는 있지만 그 구성 요소와 상호 작용할 수 있어야합니다.

+0

의견을 보내 주셔서 대단히 감사합니다. 하지만 나는 "당신이 80 바이트를 입력했습니다"와 같은 문장을 만들어야합니다 ... 어떤 해결책이 있습니까? –

+0

내 제안에 맞지 않은 것은 무엇입니까? – existdissolve

관련 문제