2013-06-24 83 views
0

我想要在收聽文件更改時收聽。但它不工作在extjs的Filefield上收聽更改

{ 
      xtype: 'filefield', 
      id: 'form-file', 
      fieldLabel: 'Photo', 
      name: 'photo-path', 
      buttonText: '', 
      buttonConfig: { 
       iconCls: 'upload-icon' 
      }, 
      listeners: { 
        'change': function(this, value){ 
         alert('change'); 
        } 
      } 
} 
+0

我發現溶液:函數變化必須是:變化:函數(f,new_val){ 警報( new_val); } – DeLe

+0

如果你解決了你自己的問題,請把它作爲答案(並接受你自己的答案) – tacaswell

+0

@tcaswell好吧謝謝你:)我只是發佈我的答案:) – DeLe

回答

1

我發現溶液:函數變化必須是:

change: function(f,new_val) { alert(new_val); } 
+0

'new_val'只是一個字符串,(至少在chrome上)只是一個以'c:\ fakepath'開頭的字符串,所以我不認爲這是解決方案 –

1

你不能用ExtJS的

的FileField或做我有解決方案。

實施例:http://jsfiddle.net/e3M3e/e8V7g/

var itemFile = null; 
Ext.create('Ext.panel.Panel', { 
    title: 'Hello', 
    width: 400, 
    html: "<input id='inputFile' type='file' name='uploaded'/>", 
    renderTo: Ext.getBody(), 
    listeners: { 
     afterrender: function() { 
      itemFile = document.getElementById("inputFile");    
      itemFile.addEventListener('change', EventChange, false); 
     } 
} 
}); 

function EventChange(e){  
    var files = itemFile.files; 
    console.log(files); 
}