以下是我的简单注册表格的Sencha代码:
xtype: 'fieldset',
items: [
{
name: 'name',
id: 'rename',
xtype: 'textfield',
placeHolder: 'Name*',
tabIndex: 1
},
{
name: 'emailfield',
id: 'reemailid',
xtype: 'emailfield',
placeHolder: 'email@example.com*',
tabIndex: 2
},
{
name: 'password',
id: 'repassword',
xtype: 'passwordfield',
placeHolder: 'Password*',
tabIndex: 3
},
{
name: 'confpassword',
id: 'reconfpassword',
xtype: 'passwordfield',
placeHolder: 'Confirm Password*',
tabIndex: 4
},
{
name: 'address',
id: 'readdress',
xtype: 'textareafield',
placeHolder: 'Address*',
tabIndex: 5
},
{
name: 'dob',
id: 'redob',
placeHolder: 'Date Of Birth',
xtype: 'datepickerfield',
destroyPickerOnHide: true,
picker: {
yearFrom: 1960
},
tabIndex: 6
}
]
当我在Android键盘中填写表单时,Android键盘右下角有一个“Go”按钮,这有助于我们提交表单。但是我想要一个“下一步”按钮,它会将我带到下一个字段,我的意思是如果我填写了名称并按下Android键盘上的“下一步”按钮,那么它应该带我去发送电子邮件。
答案 0 :(得分:0)
只要按下“Return”或“Go”键,就会在action
上触发textfield
事件。您应该利用它在下一个字段上调用focus
方法。
这样的东西可以在Android上运行,但不会在iOS上测试
Ext.define('Fiddle.view.Main', {
extend: 'Ext.Container',
config: {
fullscreen: true,
styleHtmlContent: true,
items: [
{
xtype: 'textfield',
label: 'First field',
listeners: {
action: function() {
Ext.getCmp('field_2').focus();
}
}
},
{
id: 'field_2',
xtype: 'textfield',
label: 'Second field'
}
]
}
});
工作示例:https://fiddle.sencha.com/?fiddle=b3o#fiddle/b3o
[编辑]
以前的解决方案仍然有效,但我发现了这个相关的问题:
How to change the Android softkey keyboard "Go" button to "Next"
这是在原生Android项目上完成的,并修改了“Go”按钮应用程序范围的行为。看看吧。