2010-01-10 3 views
0

У меня есть форма добавления, работающая красиво, но я хотел бы изменить настройки программно, и я получаю сообщение об ошибке.Uploadify updateSettings проблемы

Uploadify инициируется на document.ready, и я пытаюсь связать updateSettings с нажатием кнопки (также в документе 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> 

Как я уже сказал, я попытался добавить uploadifySettings вне document.ready, я также пытался добавить это прямо в onclick в теге сам, чтобы получить ту же ошибку. Я бы очень признателен за любую помощь.

+0

Вы пробовали использовать одинарные кавычки? Это не имеет значения, но никто никогда не знает ... – Steven

+0

У меня есть да, без изменений. Боюсь. – Wil

+0

Я испытал точно такую ​​же проблему. Но я не помню, что я сделал. Что делать, если вы переместите скрипт в JS-файл? Вот что я сделал. И я также использую uploadifySettings. – Steven

ответ

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> 

Btw, я никогда не рассматриваю параметр папки из uploadify. Я определяю папку загрузки в сценариях на стороне сервера.

+0

Я знаю, что немного опоздал комментировать вашу запись; однако Uploadify может быть привязан к вводу файла типа. Насколько мне известно, эта возможность была доступна и во время этого вопроса. Ознакомьтесь с [реализацией-uploadify] (http://www.uploadify.com/documentation/uploadify/implementing-uploadify/) для получения дополнительной информации. –

0

Я столкнулся с той же проблемой. Кажется, что есть ошибка с auto:true, так как у меня есть еще uploadify на той же странице, с auto:false и uploadifySettings работает отлично.

Я сделал обходной путь:

  • множество авто в ложном
  • onSelect, отправить загрузку, как это:

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

НТН

0

Я получил эту ошибку при использовании функции «Загрузить» внутри диалогового окна jquery.

Решение должно было инициализировать Uploadify после создания диалога.

+0

Не могли бы вы рассказать об этом? У меня такая же проблема, только в Chrome. Если я удалю диалог jquery, он будет работать. Я пробовал инициализировать загрузчик в событии, создаваемом dialag, без везения. – Ben

+0

Возможно, диалог еще не создан на этом событии. попробуйте добавить задержку setTimeout (для тестирования). Если он работает с setTimeout, вам нужно найти другое событие для присоединения. – joelnet

1

Попробуйте ввести другое название функции. У меня была аналогичная проблема, и выяснилось, что переименование updateSettings() в updateForm() решило проблему в моем случае.

0

Я получил эту ошибку в Chrome, когда элемент управления uploadify находился внутри диалогового окна jquery.

Я в конечном итоге не используя Uploadify и переключился на JQuery Загрузка файла плагин http://hayageek.com/docs/jquery-upload-file.php