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

In Sencha Touch, how do I do a calculation with inputs received from form fields?

本文关键字:字段 输入 计算 表单 Touch Sencha 何使用      更新时间:2023-09-26

假设我有一个这样的表单:

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,所以我很乐意得到任何帮助。

谢谢。

我会监听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()
    },{