0

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

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

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

帮我解决这个问题提前谢谢。

4

1 回答 1

1

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

空输入类型文件在 IE 中不起作用

使用 jQuery 清除 <input type='file' />

他们都在重新创建输入字段的行中提出了一些建议。要在 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).

于 2012-09-24T18:23:22.713 回答