Tengo una función de envío que el usuario puede elegir para actualizar su imagen o no. Si el usuario decide no actualizar su imagen, el valor actual recuperado se enviará a la función de aprobación. No tengo ningún problema cuando el usuario quiere actualizar, pero tengo problemas cuando el usuario no quiere actualizar la imagen. No puedo obtener el valor actual del valor recibido en mi función de envío.
Esto es lo que he probado. ¿Cómo paso el valor src a la variable pictureData si el usuario elige no actualizar su imagen?
$(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>Puede establecer el estado si el usuario ha presionado el botón elegir o no introduciendo una nueva variable.
Aquí está mi solución: -
$(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]); } }); });