2012-01-31 5 views
0

は、私はこのようなフォームを持っていると言う:Sencha Touchでは、フォームフィールドから受け取った入力をどのように計算するのですか?

var Sum1 = new Ext.form.FormPanel({ 
    id: 'Sum1', 
    items: [{ 
     xtype: 'fieldset', 
     title: 'Step 1: Calculating The Sum', 
     items: [{ 
      xtype: 'numberfield', 
      name: 'num1', 
      label: 'First Number' 
     },{ 
      xtype: 'numberfield', 
      name: 'num2', 
      label: 'Second Number' 
     },{ 
      xtype: 'numberfield', 
      name: 'num3', 
      label: 'Third Number' 
     },{ 
      xtype: 'numberfield', 
      name: 'num4', 
      label: 'Fourth Number' 
      },{ 
      xtype: 'button', 
      name: 'CalcSum', 
      ui: 'Confirm', 
      text: 'Calculate Sum', 
      handler: function() { 
       Ext.getCmp('Total').setValue('1'); 
      } 
     }] 
    },{ 
    xtype: 'fieldset', 
    title: 'Calculated Total', 
    items: [{ 
     xtype: 'textfield', 
     name: 'Total', 
     id: 'Total', 
     placeHolder: 'Your Calculated Total' 
    }] 
}); 

私が何をしたいのか、それらを合計した値を返すいくつかの方法で値num1-4を使用することです - その後、私のテキストフィールドTotalに設定されています。

私はSencha Touchの新機能で、Sencha Touch 2.0を使用していますので、サポートが大好きです。

ありがとうございました。

+3

あなたはすべてのnumberfieldの一意のIDを提供することができ、uは、それぞれのIdを – Nag

+0

@Nagはそれが 'name'の属性が何をされていないことを使用して、その番号のフィールドを追跡することができますか?しかし、私は...コードはどのように見えるのでしょうか?どこでメソッド定義を宣言し、どのように呼び出すのですか? Sencha Touchのためのドキュメントは、クラスやものを扱うことができます。それほど規則的なメソッドではありません。 – marcamillion

+3

実際にIDを指定した場合、getItemId()メソッドを使用してfieldsetにその値を渡すことができます。理解を深めるために、次のリンクを参照してください。 http://docs.sencha.com/touch/2-0/#!/api/Ext.field.Number – Nag

答えて

0

私はblurメソッドを聞いています。このメソッドは、テキストフィールドのゆるいフォーカスの後に呼び出されます。それから、totalフィールドであなたのことをして吐き出すことができますか?

参照のAPI:おそらくhttp://docs.sencha.com/touch/2-0/#!/api/Ext.field.Text

blur: function() { 
    // code here 
} 

またはUPDATE 2012-01-30

blur: yourFunctionHere() 

(私はより良いと思う): はあなたがこれを定義することができます同じファイル、またはフィールドごとに:

items: [{ 
     xtype: 'numberfield', 
     name : 'num1', 
     label: 'First Number', 
     blur : function() { 
      console.log('You blurred me!'); 
      // get current value of total field and sum it with me (if I am not null!) 
     } 
    },{ 

より良い方法は1つの関数を定義することです。同じファイル内で実行することができます。

items: [{ 
     xtype: 'numberfield', 
     name : 'num1', 
     label: 'First Number', 
     blur : doCalculateTotals() 
    },{ 
+0

しかし、この関数はどこで定義できますか?上のすべてのファイルと同じファイルですか? – marcamillion

+0

はい、MVCのアプローチを使用しないで、同じファイルで定義できます。 MVCのアプローチでは、コントローラで定義する必要があります。しかし、この場合は、同じファイルにあなたの罰金。 – adis

関連する問題