2010-11-29 65 views
2

我想用Sencha Touch構建一個簡單的表單,並附上提交處理程序。要麼我是一個n00b,要麼這很難做到。這是我想要的東西:使用Sencha Touch提交表單

  • 附加的onSubmit處理程序的形式,而不是一個onClick處理程序提交按鈕
  • 表單提交時取消表單提交。

問題是,正常的Sencha Touch按鈕根本不是按鈕 - 它們只是一堆divs和跨度。因此,點擊提交按鈕不會觸發本地表單提交。因此,需要將一個處理程序附加到「按鈕」以在表單上觸發提交,然後捕獲提交的表單以執行我想要的操作。這是可行的,但聽起來不夠優雅。有沒有更好的方法來做到這一點?

第二個問題是事件取消。如何獲取提交事件對象的句柄,以便我可以調用preventDefault對象?在Sencha Touch世界中有沒有其他的方式來做到這一點?

+0

我希望你是交叉張貼到Sencha論壇,因爲這比Sencha問題的StackOverflow更多被販賣...... – 2010-11-30 01:32:27

回答

1

如果要對錶單執行立即提交操作,則需要將「standardSubmit」config屬性設置爲true,這會在發佈表單時強制進行標準提交。

是的,你必須附加一個事件處理程序的按鈕,但它很容易。所有你需要做的是建立像按鈕,以便:

{ 的xtype: '按鈕', 文本: '下一步', 處理程序:// 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

你有一個選項「submitOnAction:真」,它可以讓用戶點擊按鈕OK您提交/虛擬鍵盤上的移動設備上訪問(工作正常iPhone/iPad的)。

app.views.newItemForm = Ext.extend(Ext.form.FormPanel, { 
submitOnAction: true, 
activeItem: 1, 
...