我有一个漂亮的uploadify表单,但是我想以编程方式更改设置,但是我收到了错误。
在document.ready上启动了Uploadify,我正在尝试将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>
就像我说的那样,我已经尝试在文档外添加uploadifySettings。我已经尝试在on标签中添加它直接添加到标签本身以获得相同的错误。我真的很感激任何帮助。
答案 0 :(得分: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的文件夹参数。我在服务器端脚本中定义了上传文件夹。
答案 1 :(得分:1)
尝试使用其他功能名称。我遇到了类似的问题,发现将updateSettings()
重命名为updateForm()
解决了我的问题。
答案 2 :(得分:0)
我遇到了同样的问题。
似乎auto:true
存在错误,因为我在同一页面上有另一个uploadify
,auto:false
和uploadifySettings
完美无缺。
我做了一个解决方法:
onSelect
,提交上传内容,如下所示:
...
'onSelect' : function(event, data){
$('#someID').uploadifySettings('param', 'value');
$('#someID').uploadifyUpload();
}
...
HTH
答案 3 :(得分:0)
在jquery对话框中使用Uploadify时出现此错误。
解决方案是在创建对话框后初始化Uploadify。
答案 4 :(得分:0)
当uploadify控件位于jquery对话框中时,我在Chrome中收到此错误。
我最终没有使用uploadify并切换到jQuery上传文件插件http://hayageek.com/docs/jquery-upload-file.php