在Sencha Touch 2中使用表单
2012-01-19 14:49
369 查看
创建一个表单
表单面板提供一套表单字段和访问/存储数据的简单方式。通常表单面板只包含你要显示的一套字段,在条目(item)配置中的排序如下:
这里我们只是创建了一个简单表单面板,它可以用做注册表单注册到你的服务。我们为用户名字增加个普通文本字段,一个电子邮件字段,最后一个密码字段。在每个case里我们在字段里提供了一个名字配置,这样稍后我们就可以在表单加载或存储数据时标识它。
加载数据
使用上面我们创建的表单,我们可以用几种不同的方法把数据加载进去,最简单的方法就是使用setValues:
加载模型实例到表单中也很容易—假如我们有一个用户模型,要把特定的实例加进我们的表单。
检索表单数据
getValues方法可以很方便的从表单面板里取数据:
可以在单独字段上侦听变动事件,从而取得用户变动的及时通知。这里我们扩展上面的用户模型,只要任一字段改变就更新模型。
上面使用了Touch2.0的新功能—可以指定任何容器的子组件上的监听器。在这个case中,我们把监听器绑定到每个表单字段的变动事件,这里的表单字段是表单面板的一个直接子部分。监听器取得触发事件的字段的名字,用新值更新模型实例。例如,改变表单的电子邮件字段将会更新模型的电子邮件字段。
提交表单
有几个提交表单数据的方法。在上面的例子里有一个更新模型实例,可选用模型的save方法把改变传回服务器,而不用传统的表单提交。我们也可以用submit方法发送一个普通浏览器表单提交。
在这个case里我们提供url来提交表单到内置的提交调用—你可以在创建表单的时候设置url配置项。我们可以指定其他参数(参照全列表submit),包括针对成功/失败的回调函数,他们是否被调用取决于表单提交是否成功。在数据存储到服务器后,这些回调函数通常用来在你的应用中采取些动作。
表单面板提供一套表单字段和访问/存储数据的简单方式。通常表单面板只包含你要显示的一套字段,在条目(item)配置中的排序如下:
Ext.create('Ext.form.Panel', { fullscreen: true, items: [ { xtype: 'textfield', name : 'name', label: 'Name' }, { xtype: 'emailfield', name : 'email', label: 'Email' }, { xtype: 'passwordfield', name : 'password', label: 'Password' } ] });
这里我们只是创建了一个简单表单面板,它可以用做注册表单注册到你的服务。我们为用户名字增加个普通文本字段,一个电子邮件字段,最后一个密码字段。在每个case里我们在字段里提供了一个名字配置,这样稍后我们就可以在表单加载或存储数据时标识它。
加载数据
使用上面我们创建的表单,我们可以用几种不同的方法把数据加载进去,最简单的方法就是使用setValues:
form.setValues({ name: 'Ed', email: 'ed@sencha.com', password: 'secret' });
加载模型实例到表单中也很容易—假如我们有一个用户模型,要把特定的实例加进我们的表单。
Ext.define('MyApp.model.User', { fields: ['name', 'email', 'password'] }); var ed = Ext.create('MyApp.model.User', { name: 'Ed', email: 'ed@sencha.com', password: 'secret' }); form.setRecord(ed);
检索表单数据
getValues方法可以很方便的从表单面板里取数据:
var values = form.getValues(); //values now looks like this: { name: 'Ed', email: 'ed@sencha.com', password: 'secret' }
可以在单独字段上侦听变动事件,从而取得用户变动的及时通知。这里我们扩展上面的用户模型,只要任一字段改变就更新模型。
var form = Ext.create('Ext.form.Panel', { listeners: { '> field': { change: function(field, newValue, oldValue) { ed.set(field.getName(), newValue); } } }, items: //as before });
上面使用了Touch2.0的新功能—可以指定任何容器的子组件上的监听器。在这个case中,我们把监听器绑定到每个表单字段的变动事件,这里的表单字段是表单面板的一个直接子部分。监听器取得触发事件的字段的名字,用新值更新模型实例。例如,改变表单的电子邮件字段将会更新模型的电子邮件字段。
提交表单
有几个提交表单数据的方法。在上面的例子里有一个更新模型实例,可选用模型的save方法把改变传回服务器,而不用传统的表单提交。我们也可以用submit方法发送一个普通浏览器表单提交。
form.submit({ url: 'url/to/submit/to', method: 'POST', success: function() { alert('form submitted successfully!'); } });
在这个case里我们提供url来提交表单到内置的提交调用—你可以在创建表单的时候设置url配置项。我们可以指定其他参数(参照全列表submit),包括针对成功/失败的回调函数,他们是否被调用取决于表单提交是否成功。在数据存储到服务器后,这些回调函数通常用来在你的应用中采取些动作。
相关文章推荐
- Sencha Touch 2.0官方指南:如何使用组件
- sencha touch 使用Ajax请求ashx后台
- 使用Eclipse开发Sencha Touch框架教程
- 【翻译】使用Sencha Touch开发Google Glass应用程序
- Sencha Touch 2 官方文档翻译之 Using Models(使用数据模型)
- Sencha touch开发中使用图表EChart出现Initialize failed: invalid dom的解决办法
- Sencha Touch 2.0官方指南:如何使用"类"
- 使用Eclipse开发Sencha Touch框架教程--安装开发环境和senchatouch
- Sencha Touch 2 官方文档翻译之 Using Store & Using Proxy(使用数据存储和代理)
- sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序
- 使用Sencha Touch加载服务器端数据。
- sencha-touch中使用百度地图
- Sencha Touch 2.0 Form表单示例
- sencha touch 扩展篇之将sencha touch打包成安装程序(下)- 使用phonegap打包安装程序
- sencha touch 扩展篇之使用sass自定义主题样式 (下)通过css修改官方组件样式以及自定义图标
- Phonegap+Sencha Touch] 移动开发5、Sencha touch结合Phonegap使用
- 使用sencha touch 2.0中的内置验证向服务器添加数据
- 使用 Sencha Touch 开发超炫的跨平台移动 Web 应用
- 在sencha-touch-1.1中如何使用localstorage
- [Phonegap+Sencha Touch] 移动开发5、Sencha touch结合Phonegap使用