起初帮朋友做个项目,项目中遇到上传文件,没想太多,代码就敲了起来,尼玛,上传做好啦,兴冲冲,一测,ei,怎么回事,怎么不能上传了,程序员的各种抓狂捉急啊,开始度娘找解决方案,找来找去,冷静下来,自己想了解决方案;
蛋疼的<input type='file' />设计,不管文件上传成功与否,已添加的文件已经被记录了,所以不会再执行change事件,大概原因知道了,动手做吧,如果我能清空记录,事件不就能触发了吗,尝试了一下,尼玛,没成功。继续找方法,如果我替换了<input type='file' />标签,然后重新绑定change事件会怎么,动手试了一下,成功了,下面贴上代码:
<form action=/api/Index/Browse enctype=multipart/form-data id=form_Upload method=post>
<input id=fileUpload type=file name=file style=display:none>
</form>
$('input[id=fileUpload]').click();
var count = 0;
$('input[id=fileUpload]').unbind().change(function () {
$('#form_Upload').ajaxSubmit(options);
});
var options = {
success: function (data) {
//$scope.orderInfo = eval(data);
$scope.$apply(function () {
$scope.orderInfo = eval(data);
//start 为避免type=file控件的change()只能执行一次,更换控件,重新绑定事件
count++;
$(#fileUpload).replaceWith('<input type=file id=fileUpload name=file style=display:none; title=' + count + '/>');
$('#fileUpload').on('change', function () {
$('#form_Upload').ajaxSubmit(options);
});
//end
$http.post(url, params).success(function (data) {
do something
}, function () {
do something
});
});
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。