我想用Sencha Touch构建一个简单的表单,并为其附加一个提交处理程序。要么我是n00b,要么这很难做到。这就是我想要的:
onSubmit
处理程序附加到表单,而不是onClick
处理程序添加到提交按钮问题是常规的Sencha Touch按钮根本不是按钮 - 它们只是一堆div和span。因此,点击提交按钮不会触发本机表单提交。因此,需要将一个处理程序附加到“按钮”以在表单上触发提交,然后捕获表单的提交以执行我想要的操作。这是可行的,但听起来并不优雅。有没有更好的方法呢?
第二个问题是事件取消。如何获取提交事件对象的句柄,以便我可以调用preventDefault?在Sencha Touch世界中还有其他方法吗?
答案 0 :(得分:1)
如果要对表单执行stand submit操作,则需要将“standardSubmit”配置属性设置为true,这将在表单发布时强制进行标准提交。
是的,你必须将一个事件处理程序附加到一个按钮,但它很容易。您所要做的就是设置按钮,如下所示:
{ xtype:'按钮', 文字:'下一步', handler:this.tapHandler //< =页面的常用tapHandler }
然后设置一个像这样的处理程序:
// Toolbar button handler function
tapHandler: function (button, event) {
switch (button.text)
{
case "Submit":
myForm.submit({...config object see API...})
// to cancel event simply return false
return false;
break;
}
}
答案 1 :(得分:1)
你有一个选项“submitOnAction:true”,它允许你在用户点击移动设备虚拟键盘上的Ok / Go按钮时提交(适用于iPhone / iPad)。
app.views.newItemForm = Ext.extend(Ext.form.FormPanel, {
submitOnAction: true,
activeItem: 1,
...