接受Filefield ExtJs中的图像

时间:2014-03-21 09:18:56

标签: javascript image extjs filefield

我的应用程序中有一个文件域组件,我想将其限制为仅图像文件。我在stackoverflow上发现了这个问题:

How to restrict file type using xtype filefield(extjs 4.1.0)?

Add accept="image/*" attribute to input field in ExtJs

我正在使用此代码:

{
  xtype:'filefield',
  listeners:{
    afterrender:function(cmp){
      cmp.fileInputEl.set({
        accept:'audio/*'
      });
    }
  }
}

但是这段代码只在我第一次点击"检查"按钮,当我再次点击它时,限制消失了。我一直在寻找其他活动,例如onclick来编写此代码,但我找不到最好的方法,任何人都有任何想法?

问候。

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为当您提交表单时,它会调用Ext.form.field.File#reset()。 您应该覆盖这样的reset()方法,以便接受属性:

{
        xtype:'filefield',
        reset: function () {  
          var me = this,                                                                
            clear = me.clearOnSubmit;
         if (me.rendered) {   
            me.button.reset(clear);
            me.fileInputEl = me.button.fileInputEl;
            me.fileInputEl.set({
               accept: 'audio/*'    
            });
            if (clear) {
               me.inputEl.dom.value = '';
            }
            me.callParent();
        }},
        listeners:{
           afterrender:function(cmp){
              cmp.fileInputEl.set({
                  accept:'audio/*'
              });
           }
        }
}