最近帮朋友做个项目中遇到了type=file change事件只能执行一次的问题,度娘了一下,发现提供了各种解决方案,所以决定记录一下我的思考方向和最终解决方式。

    起初帮朋友做个项目,项目中遇到上传文件,没想太多,代码就敲了起来,尼玛,上传做好啦,兴冲冲,一测,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

});
});
}
};

以上就是type=file的change事件只能执行一次的问题及解决方法实例的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:change file type 只能 事件
  • 程序员必备接口测试调试工具:点击使用

    Apipost = Postman + Swagger + Mock + Jmeter

    Api设计、调试、文档、自动化测试工具

    网页生成APP,用做网站的技术去做APP:立即创建

    手机网站开发APP、自助封装APP、200+原生模块、2000+映射JS接口按需打包

    • 上一篇:契约类相关的序列化与反序列化实例详解
    • 下一篇:属性值反序列化失败怎么解决?

    相关文章

    相关视频


    • c语言中goto语句的含义是什么
    • C/C++深度分析
    • C#中GDI+编程10个基本技巧二
    • 应用绝对路径与相对路径
    • type=file的change事件只能执行一次的...
    • JavaScript文本框内容改变事件(onchange)
    • Python File(文件) 方法
    • Python3 File 方法
    • ASP FileSystemObject
    • ASP File

    视频教程分类

    • php视频教程
    • html视频教程
    • css视频教程
    • JS视频教程
    • jQuery视频教程
    • mysql视频教程
    • Linux视频教程
    • Python视频教程
    • Laravel视频教程
    • Vue视频教程

    专题

    type=file的change事件只能执行一次的问题及解决方法实例