在ext中,FormPanel的文件域加一个,可是你会发现,当你上传了一张图片,在文件域中,会有一个图片文件的地址,但有了这个地址后,如果你想用js把它的值清空掉,你会发现,用Ext.getCmp('picName').setValue("");并不会报错,但是没有效果,不能把它清空。为了解决这个问题,我们需要这样做。
在每次操作时:如果FormPanel中有文件域,那么我们通过:FormPanel中的remove方法把它删除掉,然后,再通过,其中的insert方法它插入上。具体代码示例如下:
if(Ext.getCmp('proImage'))gform.remove('proImage');//由于文件域有缓存不能清掉,所以如有把它删除掉
gform.insert(4,{//重新插入
inputType:'file',
fieldLabel: '图片',
id: 'proImage',
name: 'proImage',
width: 200,
listeners:{
blur:function(file){
Ext.get('pic-img').dom.style.display = '';
Ext.get('pic-img').dom.src = file.getValue();
}
}
});
Ext.getDom('pic-img').style.display = '';
Ext.getDom('pic-img').src = 'pic/'+picName+'?did='+(new Date()).getTime();
gform是FormPanel的类型,proImage是文件域的ID,pic-img是显示图片的img标签