Как сохранить текущее полученное значение, если пользователь не хотел обновлять img в jquery?

#javascript #html #jquery

Вопрос:

У меня есть функция отправки, которую пользователь может выбрать, обновлять свою фотографию или нет. Если пользователь решил не обновлять свое изображение, текущее полученное значение будет отправлено в функцию утверждения. У меня нет проблем, когда пользователь хочет обновить, но у меня есть проблемы с тем, когда пользователь не хочет обновлять изображение. Я не могу получить текущее значение полученного значения в своей функции отправки.

Это то, что я пробовал. Как передать значение src в переменную pictureData , если пользователь решил не обновлять свое изображение?

 $(document).ready(function() {

  var isImageChosen = false;

  $(".choose").click(function() {
    $("#picture").click();

    isImageChosen = true;
  });
  getPhoto();

  $("#approve").click(function() {
    var pictureData = $('#picture')[0].files[0];
    if (!isImageChosen) {
      pictureData = $("#picture_photoViewer").attr('src');

      alert(pictureData);
    }
    let formData = new FormData();
    formData.append('picture', pictureData);

    for (var pair of formData.entries()) {
      console.log(pair[0]   ', '   pair[1]);
    }

  });

});

const getPhoto = () => {

  let photo = 'http://hd.wallpaperswide.com/thumbs/beast_2-t2.jpg';

  $("#logo").append(`<img id="picture_photoViewer" src="${photo}" width="100" height="100">`);
} 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
  <div class="text-center">
    <div class="form-group" id="logo"></div>
    <button type="button" class="btn btn-primary ml-4 choose">Choose</button>
    <input type="file" id="picture" oninput="picture_photoViewer.src=window.URL.createObjectURL(this.files[0])" hidden>
  </div>
</div>

<br>

<button type="button" id="approve" class="btn btn-success">Submit</button> 

Ответ №1:

Вы можете установить статус, нажал ли пользователь кнопку «Выбрать» или нет, введя новую переменную.

Вот мое решение:-

 $(document).ready(function() {
    var isImageChosen = false;

    $(".choose").click(function() {
        $("#picture").click();

        isImageChosen = true;
    });

    getPhoto();

    $("#approve").click(function() {

        var pictureData = $('#picture')[0].files[0];

        if (!isImageChosen){
            pictureData = $("#picture_photoViewer").attr('src');

            alert(pictureData);
        }


        let formData = new FormData();

        formData.append('picture', pictureData);

        for (var pair of formData.entries()) {
            console.log(pair[0]   ', '   pair[1]);
        }

     });

});
 

Комментарии:

1. спасибо вам большое. Я понимаю это 🙂