我知道您无法执行AJAX文件上传,但这只是我选择使用的名称。 :)
我正在使用this JQuery plugin。我认为主要的问题是我在稍微不同的背景下使用它。这是我如何使用它,我认为这是问题所在。
我先做一个表格:
$("#flash").html("<input id='vidup' type='file' name='file' size='10' /><input type='button' name='submit' onclick='videoUpload();' value='Upload' />");
我点击按钮会调用这个videoUpload函数,该函数发出一个AJAX请求来获取一个变量,即要上传的URL,这是动态创建的:
function videoUpload(){
$.get("getUploader.php", function(data){
new AjaxUpload('#vidup', {
action: data,
name: 'myfile',
responseType: 'xml',
onSubmit: function() {
// allow only 1 upload
alert('onSubmit' + data);
this.disable();
},
onComplete: function(file, response){
alert('Response' + response);
}
});
});
}
然而,唯一发生的事情是创建一个名为'myfile'的隐藏字段,但我的警报都没有出现!插件的创建者通过“$(document).ready(function()”来使用它,我不是,这会导致问题吗?
请提问,因为我不知道还有什么其他信息!
全部谢谢
它设法使用此标记添加输入字段:
<input type="file" name="myfile" style="margin: -5px 0pt 0pt -175px;
padding: 0pt; position: absolute; width: 220px; height: 30px; font-size: 14px;
opacity: 0; cursor: pointer; display: none; z-index: 2147483583;"/>
但是,它不会继续上传文件。我以为它应该也创建了一个iFrame?
答案 0 :(得分:2)
问题是插件是在ready()时注册的。那时你的#flash div是空的。你可以modify插件可能绑定调用其他事件,但这不是一个好主意,或者只是在调用ready()时从php创建div。使用Thickbox插件时,同样的事情发生在我身上。我真的不认为插件开发人员在ready()上注册操作是一个好主意,因为之后可以生成很多内容。
答案 1 :(得分:2)
我不确定我的问题是否相似,但我正在解决在jquery创建的链接上使用colorbox。由于插件文档准备就绪,它无法正常工作。然后我尝试了这个并且它有效。
function colorbox() {
$('.gf-title').colorbox({width:"80%", height:"80%", iframe:true});
};
$(window).load(function(){
colorbox();
});