如何在ExtJS中更改文件字段的值?

时间:2013-10-31 07:12:42

标签: extjs filefield

我使用ExtJS 4.2。我想浏览文件时更改文件字段的值。这样做的原因是删除“C:\ fakepath”字符串。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

C:\fakepath来自浏览器,因此您无法看到真实路径,但可以隐藏路径并仅显示文件名。您可以通过扩展文件字段来实现:

Ext.define('Ext.form.field.ExtFile', {
    extend: 'Ext.form.field.File',

    onFileChange: function(button, e, value) {
        var newValue = value.replace(/^c:\\fakepath\\/i, ''); // remove fakepath

        return this.callParent([ button, e, newValue ]);
    }
});

工作样本:http://jsfiddle.net/Qppjc/1/

答案 1 :(得分:0)

我发现最好的方法是覆盖该字段。

这是ExtJs 4& S的解决方案。 5(在ExtJs 6上也适合我):http://code.tonytuan.org/2014/10/extjs-get-rid-of-fake-path-in-file-field.html

Ext.define('Ext.enhance.form.field.File', {
    override: 'Ext.form.field.File',     
    onFileChange: function(button, e, value) {
        this.duringFileSelect = true;
        Ext.form.field.File.superclass.setValue.call(this, value.replace(/^.*(\\|\/|\:)/, ''));
        delete this.duringFileSelect;
    }   
});