2010-11-29 4 views
2

Sencha Touchで簡単なフォームを作成し、送信ハンドラを添付します。どちらかというと、私はn00bです。これは驚くほど難しいことです。ここでは、私が欲しいものです:フォームが送信されたときSencha Touchを使用したフォームの送信

  • は、フォームにonSubmitハンドラを添付し、送信ボタン
  • onClickハンドラは、フォームの送信をキャンセルしません。

問題は、通常のSencha Touchボタンはボタンではなく、divやスパンの束に過ぎないということです。したがって、送信ボタンをタップしてもネイティブフォーム送信は実行されません。その結果、フォーム上で送信を開始するために、ハンドラを「ボタン」にアタッチしてから、フォームの送信をキャプチャして、自分がしたいことを行う必要があります。これは実行可能ですが、エレガントではありません。これを行うより良い方法はありますか?

第2の問題は、イベントキャンセルの問題です。どのように私はpreventDefaultを呼び出すことができるように、サブミットイベントオブジェクトのハンドルを取得するのですか? Sencha Touchの世界でこれを行うための他の方法はありますか?

+0

私は煎茶の問題...先端のための –

+0

感謝のためにStackOverflowよりもはるかに多くの人身売買なので、あなたが煎茶のフォーラムへのクロスポストをしている願っています。この質問をhttp://www.sencha.com/forum/showthread.php?117241-Submitting-a-form-using-Sencha-Touch&p=544896に投稿しました。このスレッドをレスポンスで更新します。 –

答えて

1

フォームでスタンドサブミットアクションを実行する場合は、 "standardSubmit"設定プロパティをtrueに設定する必要があります。これにより、フォームがポストされたときに標準送信が強制されます。

はい、イベントハンドラをボタンにアタッチする必要がありますが、非常に簡単です。

{ XTYPE: 'ボタン'、 テキスト: '次へ'、 ハンドラ:this.tapHandlerページ 用// < =共通tapHandler}

あなたがしなければならないのは、そうのようなボタンの設定ですそのような

次にセットアップハンドラ:あなたはオプション「submitOnActionを:真、」持っている

// 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

、ユーザーがボタン[OK]をクリックしたときにあなたが提出することができます/モバイルデバイス上の仮想キーボードの上に移動します(のため正常に動作しますiPhone/iPad)。

app.views.newItemForm = Ext.extend(Ext.form.FormPanel, { 
submitOnAction: true, 
activeItem: 1, 
... 
関連する問題