【问题标题】:how to simulate click on a file field in Extjs?如何在 Extjs 中模拟单击文件字段?
【发布时间】:2013-11-12 17:54:08
【问题描述】:

我的 ExtJS 应用中有一个文件上传字段。

    this.scanUpload = new Ext.form.field.File({
        name: "scan field",
        emptyText: 'select file',
        allowBlank: false,
        x: 20, y: 3,
        width: 690,
        buttonText: 'select...',

        regex: /^.*(\.tiff)|(\.jpg)|(\.jpeg)|(\.gif)|(\.jpe)|(\.tif)|(\.png)$/i,

        listeners: {
            focus: function(){
                this.button.el.dom.click();
            }
        }
    });

我需要有一个弹出窗口,它不仅允许用户在用户单击“选择...”按钮时选择文件,而且还允许用户在单击“选择文件”文本区域时选择文件。上面的代码不起作用,我只是想知道是否可以添加这样的行为。有任何想法吗?

【问题讨论】:

    标签: extjs


    【解决方案1】:

    默认情况下,点击文本框会打开文件浏览窗口。

    你可以在这里检查小提琴 - Fiddle link

    Ext.create("Ext.form.field.File", {
            name: "scan field",
            emptyText: 'select file',
            allowBlank: false,
            x: 20, y: 3,
            width: 200,
            buttonText: 'select...',
        renderTo: "fieldDiv",
    
            regex: /^.*(\.tiff)|(\.jpg)|(\.jpeg)|(\.gif)|(\.jpe)|(\.tif)|(\.png)$/i,
    
    
        });
    

    【讨论】:

    • 在这种情况下,您可能应该使用“Ext.create('Ext.form.field.File', {etc....”,而不是 new 关键字。
    • 只要包含了ext-all.js,我觉得用哪一个都没关系。
    • 绝对正确,但通常更喜欢使用 create(例如:sencha.com/forum/…),无论哪种方式,您的答案都适用于该问题 :)
    • 它甚至可以在 4.1.0 中使用。无法签入 4.0.7,因为 JsFiddle 不提供该框架,但它应该适用于所有版本,因为它是一个基本功能!
    • 以上都没有解决实际问题:如何手动触发文件选择弹出窗口?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多