首页  >  文章  >  后端开发  >  type=file的change事件只能执行一次的问题及解决方法实例

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

零下一度
零下一度原创
2017-06-23 16:23:361780浏览

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

    起初帮朋友做个项目,项目中遇到上传文件,没想太多,代码就敲了起来,尼玛,上传做好啦,兴冲冲,一测,ei,怎么回事,怎么不能上传了,程序员的各种抓狂捉急啊,开始度娘找解决方案,找来找去,冷静下来,自己想了解决方案;

    蛋疼的设计,不管文件上传成功与否,已添加的文件已经被记录了,所以不会再执行change事件,大概原因知道了,动手做吧,如果我能清空记录,事件不就能触发了吗,尝试了一下,尼玛,没成功。继续找方法,如果我替换了标签,然后重新绑定change事件会怎么,动手试了一下,成功了,下面贴上代码:


         

$('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('');
                   $('#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