-1

可能重复:
如何使用 sencha touch 获取表单值并在数据库中插入该值

我是 sencha touch 的新手。我想创建一个表单并在数据库中提交该表单的详细信息。为此,我编写了以下代码。

Ext.define("Form.view.Main",{
extend: "Ext.form.Panel",

 requires:['Ext.Button',
            'Ext.Spacer',
            'Ext.field.Password'
 ],
config: {
  fullscreen: true,
   id:'form',
items: [
    {
        xtype:'fieldset',
       items:[

           {
               xtype: 'textfield',
               name : 'name',
               label: 'Name'
           },
           {
               xtype: 'emailfield',
               name : 'email',
               label: 'Email',
               placeHolder: 'Email address',
               useClearIcon: true
           },
           {
               xtype: 'passwordfield',
               name : 'password',
               label: 'Password',
               allowBlank:'false'
           }
       ]

},
     {
                centered:'true',
                xtype:'button',
                id:'submitBtn',
                text:'Submit',
                ui:'confirm',
                width:100,
               listeners: {
                    tap : function(thisTxt,eventObj){
                        var form = Ext.getCmp('form');
                        var values = thisTxt.getValues();
                        alert(values.name);
                        Ext.Ajax.request({
                            url:'http://localhost/sencha2011/form/insert.php',
                            params:values,

                            success : function(response){
                                var text = response.responseText;
                                Ext.Msg.alert('Success', text);
                            },
                            failure : function(response){
                                Ext.Msg.alert('Error','Error while submitting the form');
                                console.log(response.responseText);
                            }

                        });

                    }

                }
    }
]
}
});

当我尝试执行此应用程序时,成功执行(调试)。当我在浏览器中打开应用程序时,我在控制台窗口中出现错误为“未捕获的类型错误:无法调用未定义的方法'getValues'”,并且仅显示表单。当我单击提交按钮时,没有任何反应。任何人都可以帮助解决这个问题。提前致谢...

4

2 回答 2

0

首先,您将id表单放在错误的位置,它应该放在配置items之外

config: {
  fullscreen: true,
  id: 'form'
  items: [
  ...........
}

其次,您的查询是错误的,更改此查询:

var form = Ext.getCmp(form);

对此:

var form = Ext.getCmp('form');

最后,因为getvalues会返回一个包含表单中每个字段值的对象,所以如果你想访问,例如,你的name字段,只需这样做:

alert(values.name);

希望能帮助到你 :)

于 2013-01-17T07:43:42.330 回答
0

代替

var values = thisTxt.getValues();

尝试

var values = form.getValues();

或者

var values = this.parent.getValues();

因为按钮thisTxt不是表单,getValues()应该在表单面板上调用。

于 2013-01-17T10:50:53.420 回答