在 extjs4 中 如何在控制器中捕获文本区域的按键事件



我在extjs中工作。我有一个文本区输入word和一个搜索按钮。I have view as-

Ext.define('Balaee.view.kp.Word.Word', {
    extend : 'Ext.form.Panel',
    id : 'WordId',
    alias : 'widget.Word',
    title : 'Dictionary',
    height : 500,
    items : [{
        xtype : 'textfield',
        fieldLabel : 'Enter the word',
        name : 'wordtext',
        //anchor:'100%',
        allowBlank : false,
        emptyText : 'Enter the word',
        enableKeyEvents : true,
        id : 'wordtext',
        action : 'EnterAction'
        }, 
        {
        xtype : 'button',
        formBind : true,
        fieldLabel : 'Search',
        action : 'SearchAction',
        text : 'Search'
        }
    ]
    });

在控制器中我的功能是-

    SearchWord:function(button)
    {
        var j = Ext.getCmp('wordtext').getValue();
        console.log("word is:"+j);
        var answers = '{"data":[';
        answers = answers + '{"word":"'+j+'"}'
        answers =answers+']}';
        console.log(answers);
        var storeObject=this.getStore('kp.WordStore');
        storeObject.load({
            params:{
                data: answers 
            },
            callback: function(records,operation,success){
                //console.log(records)
            },
            scope:this
        });
        var temp=Ext.getCmp('WordId');
        temp.remove('WordInfoId');
        var details=Ext.create('Balaee.view.kp.Word.WordInfo');
        //details.region='center';
        temp.add(details);
    }
});

当用户在文本区输入单词并点击提交按钮时,上面的函数正常工作。但我想执行上面的"搜索词"功能的控制器上的输入按钮点击也。即,如果用户将在文本区输入单词并按下回车键,则需要执行控制器的相同功能。那么如何在控制器中捕获textarea的enter键按事件?

监听specialKey事件,如果键为ENTER则调用函数。

在控制器的init函数中,这样做:

this.control({
    '#wordtext':{
        specialkey: function(field, e){
            if (e.getKey() == e.ENTER) {
                 //Do whatever you want here (such as call your SearchWord function)
            }
        }  
    }
});

相关内容

  • 没有找到相关文章

最新更新