Extjs 重置文件字段输入
Posted
技术标签:
【中文标题】Extjs 重置文件字段输入【英文标题】:Extjs reset filefield input 【发布时间】:2012-06-22 13:17:28 【问题描述】:如何在 ExtJS 中重置文件字段输入?我正在尝试:
//this - point on Ext.panel.Form
var form = this.getForm();
form.reset();
var filefield = this.getForm().getFields().get(0);
filefield.reset();
filefield.setValue('');
filefield.value = '';
但这些方法中没有一种是行不通的。谢谢你的帮助!
【问题讨论】:
【参考方案1】:使用下面的代码会帮助你
function clearFileUpload(id)
// get the file upload element
fileField = document.getElementById(id);
// get the file upload parent element
parentNod = fileField.parentNode;
// create new element
tmpForm = document.createElement("form");
parentNod.replaceChild(tmpForm,fileField);
tmpForm.appendChild(fileField);
tmpForm.reset();
parentNod.replaceChild(fileField,tmpForm);
【讨论】:
【参考方案2】:旧帖子,但我也遇到了这个问题,我找到了一个更清洁的解决方案。
首先确保文件字段设置了allowBlank: true。
然后你可以这样调用 setRawValue 方法:
filefield.setRawValue("");
【讨论】:
【参考方案3】:您可能正在寻找的最简单的方法是:
filefield.fileInputEl.dom.value = '';
【讨论】:
【参考方案4】:基于这个答案:html input file selection event not firing upon selecting the same file
在 Ext.ux.form.FileUploadField 组件的 bindListeners 函数下的 change 事件中添加如下代码。
var that = this;
setTimeout(function()
that.fileInput.dom.value = null;
that.setValue(that.fileInput.dom.value);
, 100);
bindListeners: function()
this.fileInput.on(
scope: this,
mouseenter: function()
this.button.addClass(['x-btn-over','x-btn-focus'])
,
mouseleave: function()
this.button.removeClass(['x-btn-over','x-btn-focus','x-btn-click'])
,
mousedown: function()
this.button.addClass('x-btn-click')
,
mouseup: function()
this.button.removeClass(['x-btn-over','x-btn-focus','x-btn-click'])
,
change: function()
var v = this.fileInput.dom.value;
this.setValue(v);
this.fireEvent('fileselected', this, v);
var that = this;
setTimeout(function()
that.fileInput.dom.value = null;
that.setValue(that.fileInput.dom.value);
, 100);
);
,
【讨论】:
以上是关于Extjs 重置文件字段输入的主要内容,如果未能解决你的问题,请参考以下文章