我已经在 extjs 中创建了向导。在我有 2 个字段的表单中,当用户填写最后一个文本字段时,我需要按下Enter该操作,因为用户单击下一个按钮。如何实现它
问问题
9968 次
3 回答
5
{
xtype:'textfield',
name:'whatever',
enableKeyEvents: true,
listeners: {
keypress : function(textfield,eo){
if (eo.getCharCode() == Ext.EventObject.ENTER) {
//enter is pressed call the next buttons handler function here.
this.up('form').down('nextButton').handler
}
}
}
}
于 2012-09-06T08:17:43.997 回答
1
或者您可以直接定义函数的名称:
如果您的按钮是这样创建的:
xtype: 'button',
text : 'Go',
listeners: {
click: {
fn: me.onSearchClick,
scope: me
}
}
你可以这样做:
{
xtype:'textfield',
name:'whatever',
enableKeyEvents: true,
listeners: {
keypress : function(textfield,eventObject){
if (eventObject.getCharCode() == Ext.EventObject.ENTER) {
me.onSearchClick();
}
}
}
}
于 2012-10-29T09:54:36.857 回答
0
我实现这一点的方式与上述答案不同,并且在我看来它是优越的,因为您可以使用正确的 MVC 模型,而不是在您所看到的视图中执行它。
在我的控制器中,我在事件定义中使用了以下代码(我们在 init 函数中执行此操作):
'searchform textfield': {
specialkey: this.specialKeyPress
},
其中 'searhform' 是在控制器中为表单定义的选择器。
然后,处理此问题的函数如下所示:
/**
* Peform the serach when the enter key is pressed.
*/
specialKeyPress(f, e, o) {
if(e.getKey() == e.ENTER) {
this.performSearch();
}
},
这样做的另一个好处是,它默认适用于所有文本字段,而不必手动将其添加到每个文本字段。
于 2016-02-08T10:55:19.567 回答