在Sencha Touch中,如何使用从表单字段接收的输入进行计算?

时间:2012-01-31 05:20:36

标签: javascript sencha-touch extjs sencha-touch-2

说我有这样的表格:

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,所以非常乐意为您提供帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

我会听blur方法。在文本字段松散焦点后将调用此方法。那么你可以做你的事情并在total字段中吐出来吗?

请参阅API:http://docs.sencha.com/touch/2-0/#!/api/Ext.field.Text

也许:

blur: function() {
  // code here
}

或(我认为更好)

blur: yourFunctionHere()

更新2012-01-30: 您可以在同一个文件中定义它,甚至可以在每个字段中定义:

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!)
        }
    },{

更好的方法是定义一个函数,你可以在同一个文件中执行;

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