Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文件输入jQuery更改事件只触发一次_Javascript_Php_Jquery_File Upload_Jquery Events - Fatal编程技术网

Javascript 文件输入jQuery更改事件只触发一次

Javascript 文件输入jQuery更改事件只触发一次,javascript,php,jquery,file-upload,jquery-events,Javascript,Php,Jquery,File Upload,Jquery Events,我使用了插件ref:-[ 我正在尝试使用jQuery ajax修复3个图像上传程序。这就是为什么我会根据要求进行一些更改,其中一些是:- 我将所有CSS样式从id转换为class means(#到) 将数据类型从JSON替换为字符串 将pic上载事件从提交更改为文件输入更改事件 一切正常,图像上传和视图显示也成功完成 现在我的问题是文件输入更改事件只触发一次? 请帮我解决这个问题 视图:- <div class="photobox fL"> <div class="

我使用了插件ref:-[

我正在尝试使用jQuery ajax修复3个图像上传程序。这就是为什么我会根据要求进行一些更改,其中一些是:-

  • 我将所有CSS样式从id转换为class means(#到)
  • 将数据类型从JSON替换为字符串
  • 将pic上载事件从提交更改为文件输入更改事件
  • 一切正常,图像上传和视图显示也成功完成

    现在我的问题是文件输入更改事件只触发一次? 请帮我解决这个问题

    视图:-

    <div class="photobox fL">
          <div class="container" title="Choose File">
              <div class="doit">
                   <img src="&lt;?php echo base_url();?&gt;images/thumb-5.jpg" id="img1" alt="Upload Photo" width="220px" height="300px;"/>
              </div>    
              <input id="file1" class="hid" name="file1" type="file" size="1/">
          </div>
    </div>
    
    我的控制器也工作正常。问题是文件输入更改事件只发生一次。 我并没有使用表单标签,因为我并没有像参考中所说的那个样对提交事件进行上传。但我的图片上传仍然可以立即正常工作,因为下次更改事件不会触发


    请帮助我解决此问题。

    您应该在动态创建的元素上尝试它:
    这两个事件都是works.on或.bind,例如:

    $(document).on('change','#file1',function(e)
    {
                  e.preventDefault();
                  $.ajaxFileUpload({
                        url :'./upload_image/upload_file/', 
                        secureuri :false,
                        fileElementId :'file1',
                        dataType :'string',
                        success : function (path)  //EXECUTES SUCCESSFULLY
                        {
                           var base_url=loadName();
                           var img1 = document.getElementById("img1");
                           img1.src = base_url+path; //CHANGE IMG SRC WITH NEW UPLOADED IMAGE SUCCESSFULLY
                        }
                  });
                  return false;
    });
    

    **当您添加图像并尝试再次上载同一图像时,由于输入值未更改而导致更改事件未触发,您应在过程结束时清除输入值**

    $('#imageUpload')。在('change',函数handleImage(e)上{
    //一些过程
    //然后清除该值
    $(this).val(null);
    
    })
    尝试使用$(document).on('change','#file1',function(e){});直接使用out$(function(){});您还可以使用.on或.bind方法在成功上载后重置文件输入元素。谢谢@Rocky您解决了我的问题我想接受您的答案,但我找不到接受评论作为答案的选项再次感谢
    $(document).on('change','#file1',function(e)
    {
                  e.preventDefault();
                  $.ajaxFileUpload({
                        url :'./upload_image/upload_file/', 
                        secureuri :false,
                        fileElementId :'file1',
                        dataType :'string',
                        success : function (path)  //EXECUTES SUCCESSFULLY
                        {
                           var base_url=loadName();
                           var img1 = document.getElementById("img1");
                           img1.src = base_url+path; //CHANGE IMG SRC WITH NEW UPLOADED IMAGE SUCCESSFULLY
                        }
                  });
                  return false;
    });