2010-01-10 55 views
0

我已經有一個uploadify表單工作得很好,但我想以編程方式更改設置,並且出現錯誤。Uploadify updateSettings problems

Uploadify在document.ready上啓動,我試圖將updateSettings綁定到按鈕單擊(也在document.ready中完成)。我也嘗試在document.ready之外使用updateSettings函數 - 實際上在按鈕上或者只是內聯腳本中獲得相同的錯誤。

的錯誤是

Error: document.getElementById(a(this).attr("id") + "Uploader").updateSettings is not a function 

而且我的代碼目前看起來像

<script> 
$(document).ready(function(){ 

    $('#uploadify').uploadify({ 
    'uploader' : 'uploadify.swf', 
    'script' : 'uploadify.php', 
    'cancelImg' : 'cancel.png', 
    'auto'  : true, 
    'folder' : '/uploads' 
    }); 

    $("#changeIt").click(function(){ 
    $("#uploadify").uploadifySettings("folder","something_else"); 
    }); 

}); 
</script> 

<input type="file" name="uploadify" id="uploadify" /> 

<a id="changeIt" src="#">Change the upload dir</a> 

就像我說的,我已經嘗試加入的document.ready外uploadifySettings,我也嘗試添加它正好在a標籤本身的onclick中以獲得相同的錯誤。我非常感謝任何幫助。

+0

您是否嘗試過使用單引號?它應該不重要,但是永遠不會知道...... – Steven 2010-01-10 16:37:29

+0

我有,沒有改變,我害怕。 – Wil 2010-01-11 08:05:25

+0

我遇到了完全相同的問題。但我不記得我做了什麼。如果你將你的腳本移動到一個JS文件呢?這就是我所做的。我也在使用uploadifySettings。 – Steven 2010-01-11 14:49:29

回答

2

你的代碼有誤。 Uploadify無法綁定到<input type="file">,僅限於<div/>。請參閱uploadify網站中的文檔和示例。

要有漸進式增強功能,我同時使用了元素<input type="file"/>和空的<div/>。然後在javascript代碼中,我刪除輸入元素,然後初始化uploadify。

<input type="file" name="uploadify" /> 
<div id="uploadify"></div> 

<script type="text/javascript"> 
    jQuery(function($){ 
     $("input[name='uploadify']").hide().remove(); 
     $("#uploadify").uploadify({UPLOADIFY_PARAM}); 
     //a click handler to change uploadify param 
     //... 
    }); 
    </script> 

順便說一句,我從來沒有考慮uploadify的文件夾參數。我在服務器端腳本中定義上傳文件夾。

+0

我知道我對你的帖子發表評論有點遲;然而,Uploadify可以綁定到類型文件的輸入。據我所知,這個能力在這個問題時也是可用的。查看[實施 - uploadify](http://www.uploadify.com/documentation/uploadify/implementing-uploadify/)瞭解更多信息。 – 2012-07-11 18:59:10

0

我遇到了同樣的問題。 看來有一個錯誤auto:true,因爲我有另一個uploadify在同一頁上,與auto:false,和uploadifySettings完美的作品。

我做了一個解決辦法:

  • 設定的自動假
  • onSelect,提交上傳,像這樣:

    ... 'onSelect' : function(event, data){ $('#someID').uploadifySettings('param', 'value'); $('#someID').uploadifyUpload(); } ...

心連心

0

在jQuery對話框中使用Uploadify時出現此錯誤。

解決方案是在創建對話框後初始化Uploadify。

+0

你能詳細解釋一下嗎?我只有在Chrome中遇到同樣的問題。如果我刪除了jquery對話框,它會起作用。我試圖在沒有運氣的情況下初始化dialag創建的事件的上傳器。 – Ben 2016-08-01 15:08:19

+0

有可能對話仍然沒有在該事件上創建。嘗試添加setTimeout延遲(用於測試)。如果它使用setTimeout,那麼你需要找到另一個要附加的事件。 – joelnet 2016-08-04 18:13:23

1

嘗試使用不同的函數名稱。我有類似的問題,發現重命名updateSettings()updateForm()解決了我的情況。