В Sencha Touch, как мне сделать расчет с входными данными, полученными из полей формы? - PullRequest
0 голосов
/ 31 января 2012

Скажем, у меня есть такая форма:

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 в некотором методе, который их суммирует и возвращает значение, которое затем устанавливается в моемtextfield Total.

Я новичок в Sencha Touch и использую Sencha Touch 2.0, поэтому буду рад любой помощи.

Спасибо.

1 Ответ

0 голосов
/ 31 января 2012

Я бы послушал метод 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()
    },{
...