2013-08-02 43 views
0

如何使用不同的按鈕或組件打開文件區的文件選擇對話框?我試圖通過互聯網搜索,但我找不到解決方案。我試圖做的是點擊面板打開文件選擇對話框。點擊不同的按鈕觸發文件選擇extjs4.1

+0

,再有就是這樣做的一種方式。 – Brian

+0

我該怎麼做? – John

+0

你有沒有得到我的答案,它是你要求的 – Brian

回答

1

簡答題是你不能。用戶需要直接與按鈕交互以使其打開。

什麼Ext在底層做的是它將一個文件輸入元素放在一個按鈕內,它無形地匹配所述按鈕的尺寸。所以當你點擊按鈕時,它會觸發文件上傳。該機制用於提供樣式。

+0

我只是想在文件欄按鈕上點擊聽衆 – John

+0

這不是你的問題所說的。它說你想通過點擊面板(而不是文件域)來打開瀏覽對話框。 –

+0

有沒有一種方法可以在沒有實際點擊的情況下單擊「文件」按鈕,以便我可以觸發瀏覽對話框? – John

1

如果您需要點擊另一個按鈕來觸發一個按鈕的點擊......那麼這是你可以做什麼:

// ..... 
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(); 
     } 
    } 
] 
// .... 

就像一個魅力。你甚至可以檢查這個DEMO。在Upload按鈕處理程序中,我正在提醒一些文本。如果你點擊test按鈕,它實際上會點擊Upload按鈕。

只有在一段時間之後,這個演示纔會在Sencha的嘗試網站上看到,所以您可以將我的代碼複製到適當的位置。

好運

+0

OP詢問文件瀏覽對話框。 –

+0

點擊按鈕打開消防對話框,所以這沒什麼不同 – Brian

+0

如果你看他/她的評論,那OP要求我提供什麼 – Brian

0

看看這張截圖:http://ic.pics.livejournal.com/werdender/15522933/44207/44207_original.jpg

藍色顯示無形<input type="file">

文件字段位於「Browse ...」按鈕上方。當你點擊「瀏覽...」按鈕時,你實際上是點擊不可見的文件字段。

以編程方式點擊文件字段是不可能的。

但是你可以創建一個骯髒的黑客:http://jsfiddle.net/W2ffW/

主要輸入,因此,將只包含一個文本值,但是你可以重寫其方法extractFileInput()等 - 這是另外一個問題。

3

您必須在DOM級別觸發filefield的「瀏覽...」按鈕的單擊事件。 簡單地說,這個想法是獲得對<input>的引用並啓動其單擊事件。

這裏的(也JSFiddle - http://jsfiddle.net/fa4bwp7q/3/)爲例:

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(); 
     } 
    } 
}); 

這應該輸入到textfield時,打開文件瀏覽器,而filefield在任何時候都保持隱藏。

這個工程即使在ExtJS的5.如果你想通過點擊另一個點擊一個按鈕

相關問題