Javascript 字段会动态添加到表单中,但不会提交到服务器
我希望能够动态地向表单添加不同的字段,然后将它们提交到服务器。我就是这样做的:Javascript 字段会动态添加到表单中,但不会提交到服务器,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我希望能够动态地向表单添加不同的字段,然后将它们提交到服务器。我就是这样做的: var frm = this.up('window').down('form'); for(var i = 0; i < 3; i++){ var el = Ext.create('Ext.form.field.Text',{ xtype:'textfield', name:'field_' + i });
var frm = this.up('window').down('form');
for(var i = 0; i < 3; i++){
var el = Ext.create('Ext.form.field.Text',{
xtype:'textfield',
name:'field_' + i
});
frm.items(add);
}
alert(frm.getForm().getFields().length); // alerts "0";
var frm=this.up('window').down('form');
对于(变量i=0;i<3;i++){
var el=Ext.create('Ext.form.field.Text'{
xtype:'textfield',
名称:'field_'+i
});
财务报表项目(新增);
}
警报(frm.getForm().getFields().length);//警报“0”;
这真的很有趣,因为我甚至在表单中看到了三个新字段——它们有唯一的ID、名称等。但是出于某种疯狂的原因,
frm.getForm().getFields()。length
给了我零,即使我将其延迟2、5或无限秒。发生了什么事?服务器端可能会对此提供一些保护(以防止)
我在使用Drupal(Apache)时也遇到过同样的问题,但我确信这是许多框架/服务器的通用做法。试试:
frm.add(el);
而不是:
frm.items(add);
事实上,情况并非如此,因为即使在客户端
frm.getForm().getFields().length
也等于零,无论我延迟多长时间。@Jacobian你能在JSFiddle上举个例子吗?因为你们在客户端有同样的问题,它很可能不依赖于服务器,而是依赖于客户端。看起来,我们已经解决了它!谢谢你的帮助!