Javascript Sencha-使用按钮添加新表单字段Sencha表单-用户激活
好吧,我可能遗漏了一些基本的东西,但我想看看是否有人能发现这里出了什么问题。我的目标是让用户能够通过单击基于Sencha的表单中的按钮添加新成分(通过我配方表单中的新文本字段) 此外,textfield name(待提交)需要增加1,以便提交到MySQL数据库正常工作,即ingredients2、ingredients3……这是我迄今为止所拥有的(没有模型),还请注意,我已硬编码字段,但出于测试目的,已将其隐藏:Javascript Sencha-使用按钮添加新表单字段Sencha表单-用户激活,javascript,forms,extjs,Javascript,Forms,Extjs,好吧,我可能遗漏了一些基本的东西,但我想看看是否有人能发现这里出了什么问题。我的目标是让用户能够通过单击基于Sencha的表单中的按钮添加新成分(通过我配方表单中的新文本字段) 此外,textfield name(待提交)需要增加1,以便提交到MySQL数据库正常工作,即ingredients2、ingredients3……这是我迄今为止所拥有的(没有模型),还请注意,我已硬编码字段,但出于测试目的,已将其隐藏: var formBase = { scroll:
var formBase = {
scroll: 'vertical',
url : 'server.php',
standardSubmit : false,
items: [
{
xtype: 'fieldset',
title: 'Add Recipe',
ref: 'fs',
//instructions: 'Please enter the information above.',
defaults: {
required: true,
labelAlign: 'left',
labelWidth: '40%',
},
items: [
{
xtype: 'textfield',
name : 'name',
label: 'Recipe Name',
useClearIcon: true,
autoCapitalize : false
},
{
xtype: 'textfield',
name : 'ingredients',
label: 'Ingredients',
useClearIcon: true,
autoCapitalize : false
},
{
xtype: 'textfield',
name : 'ingredients2',
label: 'Ingredients 2',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textfield',
name : 'ingredients3',
label: 'Ingredients 3',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textfield',
name : 'ingredients4',
label: 'Ingredients 4',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textfield',
name : 'ingredients5',
label: 'Ingredients 5',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textfield',
name : 'ingredients6',
label: 'Ingredients 6',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textfield',
name : 'ingredients7',
label: 'Ingredients 7',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textfield',
name : 'ingredients8',
label: 'Ingredients 8',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textfield',
name : 'ingredients9',
label: 'Ingredients 9',
useClearIcon: true,
autoCapitalize : false,
hidden: true
},
{
xtype: 'textareafield',
name : 'comments',
label: 'Comments',
maxLength: 50,
maxRows: 5,
height: 120
},
{
xtype: 'emailfield',
name : 'email',
label: 'Email',
placeHolder: 'user@foo.com',
useClearIcon: true
},
{
xtype:'button',
text: 'Add Ingredient',
handler: function() {
var p = formBase.fs.items.items + 1;
formBase.fs.insert(p, {
xtype: 'textfield',
name : 'ingredients',
label: 'Added field'
});
formBase.fs.doLayout();
}},
]
}
],
我收到的错误是:UncaughtTypeError:无法读取未定义的属性“items”
谢谢你的帮助BRR
defaults: {
required: true,
labelAlign: 'left',
labelWidth: '40%',
},
labelWidth后面的逗号会打断它,不是吗?行p=formBase.fs.items.items+1;
字段fs未定义为formBase变量的属性,因此未对其进行解析(因此未定义)。因此,当尝试引用“fs”中的“items”时,您会得到一个错误。(您正在尝试引用fs中的项目,而fs未定义)。否,这不会影响它,但感谢您的帮助。还有其他想法吗?你有没有更完整的例子?一些随机对象(不是全部)使它有点困难。异常发生在哪一行(我猜是在var p位,因为这感觉有点奇怪,但这是猜测工作)?我不确定您是否可以只使用var p=formBase.fs.items.items+1;在这样一个物体里面,也许你在寻找。。。var p=计数(formbase…);实际上,这是一个非常完整的示例——其余的只是构建页面上的其他面板。异常发生在您提到的行(var p…),我相信您是正确的,我需要某种计数函数。我最终推出了自己的功能,启动了一个不同的停靠按钮;虽然不漂亮,但已经完成了任务。如果你想看的话,我可以把它贴出来——这条评论太长了。