Javascript 如何在表单提交时包含添加到网格的文件
我有一个带有字段和网格的表单Javascript 如何在表单提交时包含添加到网格的文件,javascript,extjs,Javascript,Extjs,我有一个带有字段和网格的表单 { textfield }, { textfield }, { textfield }, etc..., { grid with toolbar: filefield } 在网格上,我添加了一个filefield工具栏,我添加了一个更改侦听器,将文件添加到网格中: addAttachment: function (field, value, eOpts) { var me = this, grid = field.up('
{ textfield },
{ textfield },
{ textfield },
etc...,
{ grid with toolbar: filefield }
在网格上,我添加了一个filefield
工具栏,我添加了一个更改侦听器,将文件添加到网格中:
addAttachment: function (field, value, eOpts) {
var me = this,
grid = field.up('grid'),
gridStore = grid.getStore();
gridStore.add(
{
filename: value,
dateadded: new Date()
});
}
基本上,我希望首先将附件添加到网格中,以便可以向服务器发送多个文件。这可能吗
当前,执行form.getValues()
操作只能获取表单中的其他字段,而不能获取工具栏。获取存储项目似乎也不包括正确的文件路径,因为它们的前缀是c:\fakepath\
我只想在
Save
事件中推送所有表单值,包括存储在网格中的所有文件。各位运气好吗?好的。因为,没有人回答,以下是我所做的:
首先,我没有在网格的tbar中使用文件字段
,而是使用按钮
。我在该按钮中添加了一个单击侦听器,该按钮在表单中添加了一个隐藏的filefield
:
addAttachment: function (button) {
var me = this,
form = button.up('form'),
grid = button.up('grid'),
gridStore = grid.getStore(),
newFileField = {
xtype: 'filefield',
hidden: true,
unused: true, //custom property to check if there is already an unused field
listeners: {
change: function (field, value, eOpts) {
gridStore.add(
{
filename: value,
dateadded: new Date()
});
field.unused = false;
}
}
};
//if there is already an unused field, we don't need to add a newField to the form
if (!form.down('filefield[unused=true]')) {
form.add(newFileField);
}
//imitate the filefield trigger. this will show the file dialog
form.down('filefield[unused=true]').fileInputEl.dom.click();
}
就这样。基本上,按钮
只是模仿文件字段
文件对话框触发器,但实际发生的是它向表单添加了一个新的文件字段
。因此,调用form.getForm().submit()
现在包括网格中的所有文件
我希望这对将来的任何人都有帮助
干杯强>