2011-01-19 17 views
0

我正在將AJAX上傳器http://valums.com/ajax-upload/集成到我的應用程序中。默認情況下,腳本將上傳的文件轉儲到一個指定的目錄中。我對它進行了修改,以便它接收參數:兩個文件夾的名稱 - 年和月,因此它可以是例如上傳/ 2010/May /而不是上傳/但它仍然會轉儲上傳文件夾中的文件,除非我明確聲明兩個文件夾名稱爲字符串。問題在Javascript文檔就緒功能中使用隱藏輸入值作爲參數

下面的代碼在我的$(document).ready函數中。

var uploader = new qq.FileUploader({ 
    element: document.getElementById('uploadfile'), 
    action: 'ajax/uploader.php', 
    allowedExtensions: ["xls"], 
    params: { 
     f: '2010',//document.getElementById('fileyear').value, 
     g: 'May'//document.getElementById('filemonth').value 
    }  
}); 

如上所見,我評論的實際線,而是用虛擬值檢查[和正常工作這種方式。我已經嘗試使用f:$(#fileyear).val(),g:$(#filemonth).val(),它沒有工作,所以我不得不像上面那樣默認document.getElementById。在上傳器變量之外,這兩個值是正確的。

一個不同的函數將日期存儲到這些隱藏的輸入中,並且我將它們更改爲普通文本輸入以確保它們正確存儲它們。

我猜這裏的問題可能只是上傳者可能會設法在創建之前獲取(空白)值?或者這是否與上傳有關?或者我的文檔有問題嗎?請我真的需要幫助 - 整天都在我的腦海裏喋喋不休。提前致謝!

回答

2

您爲document.getElementByID('fileyear').value等獲得的值將是DOM加載後的值,而不是您通過在表單中​​鍵入來改變它的值。

我會將「f」和「g」選項放入上傳器調用的函數中以獲取這些值。通過這種方式,您將獲得通話時的值,而不是它們的初始值(空白?)。

+0

你是最好的! :D我剛剛創建了兩個函數:一個用於一年,一個用於一個月。它像魔術一樣工作!再次感謝尼爾:) – Cogicero 2011-01-19 16:03:27

0
var uploader = new qq.FileUploader({ 
    element: document.getElementById('uploadfile'), 
    action: 'ajax/uploader.php', 
    allowedExtensions: ["xls"] 
}); 

$('your_button_id').click(function(){ 
    uploader.setParams({ 
     f: document.getElementById('fileyear').value, 
     g: document.getElementById('filemonth').value 
    }); 
}); 

var uploader = new qq.FileUploader({ 
    element: document.getElementById('uploadfile'), 
    action: 'ajax/uploader.php', 
    allowedExtensions: ["xls"], 
    params: { 
     f: (document.getElementById('fileyear')) ? document.getElementById('fileyear').value : 2010, 
     g: (document.getElementById('filemonth')) ? document.getElementById('filemonth').value : 'May' 
    }  
}); 
+0

這將是一個好主意,丹尼爾。我實際上在文檔中看到了setParams。但是看到沒有按鈕或鏈接,點擊事件是否會對插件強制使用的DIV起作用?同時,尼爾的回答已經幫助了我。也謝謝你! – Cogicero 2011-01-19 16:10:01

相關問題