1

我正在使用 textarea,但无法输入换行符。

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

我正在使用上面的代码,它正在工作并将数据存储到 mysql 类型为 varchar(500..),但是当我将它重新加载到相同的表单 (textarea) 时,它没有运行。

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

第一个:我该如何解决?
第二个:我用下面的代码在(所有)表单中监听输入事件,但我希望它不在我的文本区域中监听(因为输入换行),是否有可能以及如何做到这一点?谢谢

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

更新第一个解决方案
我使用代码将数据从 mysql 重新加载到我的表单:) 并且运行良好

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

我尝试解决第二个问题。我的想法是检查 textarea focus = true 然后不运行(我的问题中的第三个代码)但我知道设置焦点是 this.down('textarea').focus(true,100); 但我不知道如何检查是否有焦点?
更新第二个解决方案

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

1 回答 1

1

结帐 enableKeyEvents

true 以启用 HTML 输入字段的键事件代理。默认为:假

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

于 2013-06-11T17:06:41.293 回答