在Extjs 3.x输入类型文件中,文本字段重置在IE8(Extjs)EXTJS * 3.2中不起作用

时间:2012-09-24 13:25:54

标签: extjs3

extjs×6627,3.x版本,在mozilla浏览器中重置是为inputType:'file'工作,但它不适用于IE8浏览器,这是我的代码,

xtype :'textfield',
name:'Policy_fileUpload',
id :title+'_uploadFile',
inputType :'file',
fieldLabel :'Upload File and Location<font color=red>*</font>',
blankText :'Please choose a file',
anchor :'100%',
required :true,
autoShow :true

现在使用重置属性重置此字段

xtype:'button',extjs× 6627
id:title+'cancelButton',
width:100,
text:'Cancel',
listeners : {
   'click':function(){
       Ext.getCmp(title+'_uploadFile').reset();
       } 

请事先帮助我解决此问题。

1 个答案:

答案 0 :(得分:1)

它似乎是IE8中的安全“功能”。以下是使用jQuery给出此问题的解决方案的相关主题:

Empty input type file doesn't work in IE

Clearing <input type='file' /> using jQuery

他们都提出了重新创建输入字段的建议。要在ExtJS 3.x中执行此操作,您可以尝试这样的事情:

listeners : {
    'click':function(){
        var uploadField = Ext.getCmp('_uploadFile');                
        if (Ext.isIE8) {                
            var cfg = uploadField.initialConfig;
            uploadField.destroy();
            var parentCt = Ext.getCmp('parentContainer');
            parentCt.insert(0, cfg);
            parentCt.doLayout();
        } else {
            uploadField.reset();
        }

    } 
}

此外,似乎IE9的行为方式相同。因此,您可能希望if (Ext.isIE)代替if (Ext.isIE8)