2013-06-11 89 views
1

我正在使用textarea,我無法進入休息行。Extjs - textarea輸入事件

 xtype: 'textarea', 
     name:'mt', 
     fieldLabel: 'example', 
     labelWidth: 100, 
     width:100, 
     labelAlign : 'right', 
     maxLength: 100, 
     value: 'example' 

我正在使用的代碼belowwith以上,它的工作和存儲數據與類型爲varchar MySQL的(500 ..),但它,當我重新加載到相同的形式(textarea的)它沒有運行。

   listeners: { 
       afterrender: function(){ 
        var me = this; 
        me.el.swallowEvent(['keypress','keydown' ]); 
       } 
      } 

第一:如何解決這個問題?
第二種:我用下面的代碼在(所有)窗體中輸入事件,但是我希望它不在我的textarea中聽(因爲輸入爲斷行),是否有可能以及如何做?感謝

,listeners: { 
    render : function() { 
     Ext.create('Ext.util.KeyNav', this.getEl(), { 
      "enter" : function(e){ 
       // do form 
      } 
      scope: this  
     }); 
    } 
    } 

更新
我使用的代碼從MySQL重新加載數據到我的形式:)它的工作以及

str_replace("\n", "\\n",$r[..]) 

我嘗試解決第二個問題,第一個解決方案。我的想法是檢查如果textarea焦點= true然後不運行(在我的問題第三代碼),但我知道設置焦點this.down('textarea')。焦點(true,100);但我不知道如何檢查有重點?
更新第二個解決方案

enableKeyEvents: true, 
listeners: { 
       afterrender: function(){ 
        var me = this; 
        me.el.swallowEvent(['keypress','keydown' ]); 
       } 
      } 

回答

1

結帳enableKeyEvents

真正啓用HTML輸入場關鍵事件的代理。 默認爲:假

http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.form.field.TextArea-cfg-enableKeyEvents

+0

我使用me.el.swallowEvent([ '按鍵', 'KEYDOWN']);上面和它的工作(數據存儲在MySQL是多行,但當我重新加載形成它不工作:( – freestyle

+0

我試圖解決第二個問題。我的想法是檢查如果textarea焦點= true然後不運行(第三代碼在我的問題)但我知道設置焦點是this.down('textarea')。focus(true,100);但我不知道如何檢查焦點? – freestyle

+0

我解決了更新:) – freestyle