我在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)
}
}
}
});