您的位置:首页 > Web前端 > JQuery

jQuery 文件上传插件ajaxFileUpload使用以及onchange问题

2017-09-18 14:36 966 查看
今天用了ajaxFileUpload文件上传的一个插件,开始提示$ is not a function,这个是jQuery没引入,秒解决。

突然又来$.ajaxFileUpload is not a function,有点懵逼了,顺序也是正确的,没有发现任何问题。

后面紧接着还有一个提示$(...).live is not
a function,这个函数是$.ajaxFileUpload里面的。

然后进去看了发现change



因为当时页面我绑定了一个事件

<input id="fileToUpload" type="file" name="file" multiple="multiple" onchange="ajaxFileUpload()"/>

 onchange="ajaxFileUpload()问题就出在这里。因为才开始接触比较多的前端知识,把onchange改成change?或者livechange?(这个应该不行)。具体没这样试。我直接在js写的onchange事件,然后什么错误都没有,一切正常,图片已存储都可以。
那么问题又来了,onchange只执行一次,哇靠,上传一张图片之后再点击无效。心想执行一次,那就把它替换了从新加事件吧。一切OK

代码:

uploadListener();
function uploadListener() {
$("#fileToUpload").on('change', function() {
$.ajaxFileUpload({
url : '/foodRecomment/upload',
secureuri : false,
fileElementId : 'fileToUpload', //file标签的id
dataType : 'text', //返回数据的类型
// data:{name:'name'},//一同上传的数据
success : function(data, status) {
console.debug(data);
data = data.replace(/<pre.*?>/g, '');
data = data.replace(/<PRE.*?>/g, '');
data = data.replace("<PRE>", '');
data = data.replace("</PRE>", '');
data = data.replace("<pre>", '');
data = data.replace("</pre>", '');
data = $.parseJSON(data);
if (data.dealFlag == 1) {
// alert(data.dealMsg);
// var template = $("#template").html();
// var html = Mustache.render(template, data);
// fileNameList.push(data.fileName);
// $("#upload").before(html);
$("#fileToUpload").replaceWith("<input id='fileToUpload' type='file' name='file' multiple='multiple'/>");
uploadListener();
} else if (data.dealFlag == 0) {
alert(data.dealMsg);
}
},
error : function(data, status, e) {
alert(e);
}
});
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐