extjs通过bodyElement.dom.childNodes[0].childNodes[2].childNodes[1].childNodes[0].childNodes[2].id获取的是上传文件的input元素的id,如果你连续上传同一张图片,那么这个input元素的id是不变的,这可能导致上传组件出现问题。最好的做法是,在上传同一张图片之前,先将这个input元素移除,然后再添加一个新的input元素,这样就能够避免这个问题了。如何避免这个问题,代码实现
时间: 2024-02-03 15:12:41 浏览: 63
QQ54305792
可以通过以下代码实现:
```javascript
// 获取上传文件的input元素
var fileInput = Ext.get('fileInputId');
// 如果input元素存在,先将其移除
if (fileInput) {
fileInput.remove();
}
// 创建新的input元素
var newFileInput = Ext.DomHelper.append(Ext.getBody(), {
tag: 'input',
type: 'file',
name: 'file',
id: 'newFileInputId'
});
// 绑定上传事件
newFileInput.on('change', function() {
// 处理上传逻辑
});
```
这段代码首先通过`Ext.get`方法获取上传文件的input元素,如果该元素存在,则将其移除。然后通过`Ext.DomHelper.append`方法创建一个新的input元素,并为其设置id和name属性。最后,绑定上传事件,处理上传逻辑。这样每次上传之前都会创建一个新的input元素,避免了同一张图片上传时出现的问题。
阅读全文