Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击其他按钮extjs4.1即可触发文件选择_Javascript_Extjs_Extjs4_Extjs4.1 - Fatal编程技术网

Javascript 单击其他按钮extjs4.1即可触发文件选择

Javascript 单击其他按钮extjs4.1即可触发文件选择,javascript,extjs,extjs4,extjs4.1,Javascript,Extjs,Extjs4,Extjs4.1,如何使用其他按钮或组件打开文件字段的文件选择对话框?我试着在网上搜索,但我找不到解决办法。我要做的是在单击面板时打开文件选择对话框。简单的回答是你不能。用户需要直接与按钮交互以使其打开 Ext在引擎盖下的作用是,它将一个文件输入元素放在一个按钮内,该按钮的尺寸与Ext按钮的尺寸不可见地匹配。因此,当你点击按钮时,它会触发文件上传。该机制用于提供样式。如果您需要通过单击另一个按钮来触发一个按钮的单击…则您可以执行以下操作: // ..... buttons: [ { te

如何使用其他按钮或组件打开文件字段的文件选择对话框?我试着在网上搜索,但我找不到解决办法。我要做的是在单击面板时打开文件选择对话框。

简单的回答是你不能。用户需要直接与按钮交互以使其打开


Ext在引擎盖下的作用是,它将一个文件输入元素放在一个按钮内,该按钮的尺寸与Ext按钮的尺寸不可见地匹配。因此,当你点击按钮时,它会触发文件上传。该机制用于提供样式。

如果您需要通过单击另一个按钮来触发一个按钮的单击…则您可以执行以下操作:

// .....
buttons:
[
    { 
        text: 'Open File',
        id: 'open_button',
        handler: function()
        {
            // open the dialog box and 
            // do what you need
        }
    },
    {
        text: 'Another button',
        handler: function()
        {
            // here you can click the Open File button 
            Ext.get('open_button').el.dom.click();
        }
    } 
]
//  ....
工作起来很有魅力。你甚至可以检查这个。在上传按钮处理程序中,我正在提醒一些文本。如果你点击test按钮,它实际上会点击Upload按钮

只是过了一段时间,该演示在Sencha的try网站上不可见,因此您可以将我的代码复制到适当的位置

祝你好运看看这个屏幕截图:

蓝色表示看不见的颜色

“文件”字段位于“浏览”字段上方。。。按钮当您单击“浏览”按钮时。。。按钮,实际上是单击“不可见文件”字段

无法通过编程方式单击文件字段

但你可以创建一个肮脏的黑客:


因此,主输入仅包含文本值,但您可以覆盖其方法extractFileInput等-这是另一个问题。

您必须触发文件字段浏览的单击事件。。。DOM级别的按钮。 简单地说,想法是获取对的引用并启动其单击事件

这里还有一个例子:

这将在文本字段中键入时打开文件浏览器,而文件字段始终保持隐藏状态


这甚至在ExtJS 5上也适用。

如果你想通过单击另一个按钮来单击一个按钮,那么有一种方法可以做到。你得到我的答案了吗,它符合你的要求吗?我只想在文件字段按钮上有一个单击侦听器,这不是你的问题所说的。它表示您希望通过单击面板而不是文件字段来打开浏览对话框。是否有一种方法可以让我在不实际单击的情况下单击文件字段按钮,从而触发浏览对话框?OP询问有关文件浏览对话框的问题。Fire对话框是通过单击按钮打开的,因此这与查看他/她的评论没有任何区别,那是OP让我提供的谢谢。但是我如何获得上传字段按钮的id呢?就像任何其他按钮一样,当您创建它时,您会分配它。请看这一页。只需在xtype:“filefield”之后分配一个id
var fileField = Ext.create('Ext.form.field.File', { renderTo: 'myDiv', hidden: true });

var textField = Ext.create('Ext.form.field.Text', {
    renderTo: 'myDiv',
    listeners: {
        change: function(btn, newValue) {
            fileField.fileInputEl.dom.click();
        }
    }
});