使用Sencha Touch提交表单

时间:2010-11-29 12:27:09

标签: forms extjs javascript-framework sencha-touch

我想用Sencha Touch构建一个简单的表单,并为其附加一个提交处理程序。要么我是n00b,要么这很难做到。这就是我想要的:

  • onSubmit处理程序附加到表单,而不是onClick处理程序添加到提交按钮
  • 提交表单时取消表单提交。

问题是常规的Sencha Touch按钮根本不是按钮 - 它们只是一堆div和span。因此,点击提交按钮不会触发本机表单提交。因此,需要将一个处理程序附加到“按钮”以在表单上触发提交,然后捕获表单的提交以执行我想要的操作。这是可行的,但听起来并不优雅。有没有更好的方法呢?

第二个问题是事件取消。如何获取提交事件对象的句柄,以便我可以调用preventDefault?在Sencha Touch世界中还有其他方法吗?

2 个答案:

答案 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, 
...