我使用jQuery插件多文件这里找到:
http://www.fyneworks.com/jquery/multiple-file-upload/
我用它在过去,也没有问题,但现在我想在一个动态加载的形式使用它,它导致一个奇怪的问题。
加载表格按这篇文章的时候,我正确结合的功能,所以请理解这是不同的,尽管相关,问题一张贴在这里:
不能输入事件从动态加载的形式绑定到jQuery的多文件
$('#reportWindow').on('click', '#continueReport', function () {
var data = $('.reportForm').serializeObject();
$('<div/>').load('/Forms/report.aspx', data, function () {
doReportForm(this);
});
});
一个ASPX文件被加载到div
使用jquery load
按以上所述, doReportForm
功能是在各种结合方法,以动态地生成HTML作为每调用:
function doReportForm(ele) {
$(ele).makeModal('', 800);
FB.XFBML.parse();
checkLogin();
clearNetIds($('#reportForm2'));
$("#datePicker").datepicker({
changeMonth: true,
changeYear: true
});
$('[class*="toolTip"]').setupTip();
$(".multi").MultiFile(); // input[type=file]
$('#right').on('click', '#savePost', function () {
var data = $('.reportForm2').serializeObject();
});
};
第一行有, $(ele).makeModal('', 800);
是一个简单的jQuery的扩展我提出来创建模态窗口,因此它,因为它在元素被添加到DOM这一点上,然后几行向下我结合MultiFile
插件从而$(".multi").MultiFile();
第一次这样做了,它工作正常。 但是,当用户关闭模式窗口,然后尝试加载的形式,我再次得到一个错误。
Uncaught TypeError: Cannot call method 'apply' of undefined
(关闭模式窗口从与DOM完全删除它jQuery.remove()
所以任何未来的Windows从新鲜完全写入)。
有点摆弄之后,看来这是由于jQuery的不能够访问MultiFile
脚本...我想
在MultiFile
加载脚本在父文件的头部,所以应该在任何时候都可用。