2016-01-27 191 views
0

我有一種情況,我想顯示一個圖形按鈕,供用戶單擊以啓動文件上載。jquery不會觸發按鈕事件?

我已經創建了一個正常的文件上傳輸入這樣的:

<input style="display:none;" id="file" type="file" name="file">

注意,它設置爲顯示:沒有這樣我就可以「覆蓋」圖形按鈕。

然後,我爲人們點擊的實際圖像按鈕創建了type =「image」的輸入。正如預期的那樣,它似乎覆蓋隱藏文件上傳按鈕的位置。

<input id="uploadButton" type="image" src="images/choosefile-button.png" style="width:256px;height:57px;" />

現在我使用this video記錄了jQuery的腳本來處理click事件,並將它傳遞給真正的,隱藏的文件上傳按鈕,文件選擇對話框中執行。

<script> 
    $(document).ready(function() { 
     var intervalFunc = function() {            
     $('#file').html($('#file').val()); 
     ); 
     $('#uploadButton').on('click', function() { 
     $('#file').click(); 
     setInterval(intervalFunc, 1); 
     return false; 
     }); 
    }); 
</script> 

問題是,當我單擊圖形按鈕時,文件上傳對話框不會出現。所發生的只是通過添加圖像按鈕上發生點擊的位置的x/y座標參數來更改URL。我已經檢查過,jQuery是在文件中鏈接的,而且是。任何想法,無論我想做什麼,甚至會工作?我是否必須調整腳本以檢測此按鈕的適當x/y值範圍,然後觸發底層隱藏的實際按鈕上的點擊?

+0

視頻是有點長,所以這裏的視頻,顯示了jQuery腳本的整個代碼點。 https://youtu.be/8q6MAedPiJY?t=5m35s – user3169905

回答

0

似乎在stacksnippets返回預期結果,當刪除語法錯誤); following請注意,不確定包括setInterval的目的?此外input元素沒有.innerHTML

$(document).ready(function() { 
 
     $("#uploadButton").on("click", function() { 
 
     $("#file").click(); 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<input id="uploadButton" type="image" src="http://lorempixel.com/50/50/technics" style="width:256px;height:57px;" /> 
 
<input style="display:none;" id="file" type="file" name="file">

+0

謝謝你幫助我。它現在很好用! – user3169905