Sencha touch 2 使用sencha touch调用函数时出错
可能重复:Sencha touch 2 使用sencha touch调用函数时出错,sencha-touch-2,Sencha Touch 2,可能重复: 我是sencha touch的新手。我想创建一个表单并在数据库中提交该表单的详细信息。为此,我编写了以下代码 Ext.define("Form.view.Main",{ extend: "Ext.form.Panel", requires:['Ext.Button', 'Ext.Spacer', 'Ext.field.Password' ], config: { fullscreen: true, id:'form',
我是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);
}
});
}
}
}
]
}
});
当我尝试执行此应用程序时,已成功执行(调试)。当我在浏览器中打开该应用程序时,控制台窗口中出现的错误为“Uncaught TypeError:无法调用未定义的方法'getValues',并且仅显示表单。当我单击“提交”按钮时,不会发生任何情况。任何人都可以帮助解决此问题。
先谢谢你 首先,您将表单的
id
放在了错误的位置,它应该放在项
配置之外
config: {
fullscreen: true,
id: 'form'
items: [
...........
}
其次,您的查询错误,请更改此查询:
var form = Ext.getCmp(form);
为此:
var form = Ext.getCmp('form');
最后,由于getvalues
将返回一个对象,其中包含表单中每个字段的值,因此如果您想访问,例如,您的name
字段,只需执行以下操作:
alert(values.name);
希望有帮助:)而不是
var values = thisTxt.getValues();
试一试
或
因为
thisTxt
不是表单,应该在表单面板上调用。user1479606,感谢您的回复,我如您所说更改了代码,但仍然在控制台中收到相同的错误消息(Uncaught TypeError:Object[Object Object Object]没有“getValues”方法)当我点击submit按钮时,什么也没有发生。你确定你在查询中放入了由引号包装的表单吗?user1479606,更新了上面的代码,你能检查一下吗?你的id:form
应该放在项
配置之外。请仔细阅读我的答案。我将id更改为config。但同样的错误即将出现。当我单击submit按钮时,什么也没有发生。控制台中出现了同样的错误。我可以更改变量吗,在tap函数中?doconsole.log(thisTxt)
,console.log(form)
,console.log(this.parent)
,console.log(this.parent.parent)
并检查浏览器的控制台,查看这些内容是什么,以及哪些具有getValues()方法。您可以使用JS调试器运行所有此类命令。我将所有控制台消息放置在控制台窗口中,正如您所说的,在控制台窗口中,相同的错误即将出现,未捕获类型错误:Object[Object Object]没有方法“getValues”函数(thisTxt,eventObj)我可以更改此函数中的变量吗
var values = form.getValues();
var values = this.parent.getValues();