2

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

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

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

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

4

2 回答 2

1

如果要对表单执行标准提交操作,则需要将“standardSubmit”配置属性设置为 true,这将在表单发布时强制执行标准提交。

是的,您必须将事件处理程序附加到按钮上,但这很容易。您所要做的就是像这样设置按钮:

{ xtype: 'button', text: 'Next', 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;

        }
}
于 2011-01-15T18:26:25.100 回答
1

您有一个选项“submitOnAction: true”,当用户单击移动设备虚拟键盘上的 Ok/Go 按钮时,您可以提交(适用于 iPhone/iPad)。

app.views.newItemForm = Ext.extend(Ext.form.FormPanel, {
 submitOnAction: true,
 activeItem: 1, 
...
于 2011-03-04T09:28:16.637 回答