2016-09-06 6 views
0

В принципе, у меня есть форма, внутри которой у меня есть окно с файлом, теперь мне нужно показать картинку, выбранную из ввода файла, и показать ее в окне изображения без формы для отправки.Как загрузить изображение перед отправкой формы

я нашел учебник, который говорит:

<!DOCTYPE html> 
<html> 
    <head> 
    <script> 
     var reader = new FileReader(); 
     reader.onload = function (e) { 
      $('#blah').attr('src', e.target.result); 
     } 

     function readURL(input) { 
      if (input.files && input.files[0]) { 
       reader.readAsDataURL(input.files[0]); 
      } 
     } 

     $("#imgInp").change(function(){ 
      readURL(this); 
       alert(input.val()); 
     }); 
    </script> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
     <input type='file' id="imgInp" /> 
     <img id="blah" src="#" alt="your image" /> 
    </form> 

    </body> 
</html> 

, но это не показывать выберите изображение в моем окне изображения.

ответ

3

попробовать этот образец

расслоение плотной

function readURL(input) { 
 

 
    if (input.files && input.files[0]) { 
 
     var reader = new FileReader(); 
 

 
     reader.onload = function (e) { 
 
      $('#blah').attr('src', e.target.result); 
 
     } 
 

 
     reader.readAsDataURL(input.files[0]); 
 
    } 
 
} 
 

 
$("#imgInp").change(function(){ 
 
    readURL(this); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form1" runat="server"> 
 
    <input type='file' id="imgInp" /> 
 
    <img id="blah" src="#" alt="your image" /> 
 
</form>

0

javascript на вопрос, как представляется, возвращать ожидаемый результат. Вопрос заключается в размещении элемента <script> или без использования .ready(). Кроме того, input не определен в пределах change события. Вы можете заменить this.value на input.val() в пределах change обработчик события как параметр на alert() call.

Размещение <script> элемент под <form> элемент в HTML

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script> 
 

 
</head> 
 

 
<body> 
 
    <form id="form1" runat="server"> 
 
    <input type="file" id="imgInp" /> 
 
    <img id="blah" src="#" alt="your image" /> 
 
    </form> 
 
    <script> 
 
    var reader = new FileReader(); 
 
    reader.onload = function(e) { 
 
     $('#blah').attr('src', e.target.result); 
 
    } 
 

 
    function readURL(input) { 
 
     if (input.files && input.files[0]) { 
 
     reader.readAsDataURL(input.files[0]); 
 
     } 
 
    } 
 

 
    $("#imgInp").change(function() { 
 
     readURL(this); 
 
     alert(this.value); 
 
    }); 
 
    </script> 
 
</body> 
 

 
</html>


использованием .ready() с <script> элементом оставаясь ребенком <head> элемента

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script> 
 
    <script> 
 
    $().ready(function() { 
 
     var reader = new FileReader(); 
 
     reader.onload = function(e) { 
 
     $('#blah').attr('src', e.target.result); 
 
     } 
 

 
     function readURL(input) { 
 
     if (input.files && input.files[0]) { 
 
      reader.readAsDataURL(input.files[0]); 
 
     } 
 
     } 
 

 
     $("#imgInp").change(function() { 
 
     readURL(this); 
 
     alert(this.value); 
 
     }); 
 
    }) 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <form id="form1" runat="server"> 
 
    <input type="file" id="imgInp" /> 
 
    <img id="blah" src="#" alt="your image" /> 
 
    </form> 
 

 
</body> 
 

 
</html>

Смежные вопросы