<form hx-encoding='multipart/form-data' hx-post='{% url "compose_image_upload" %}' hx-target="this" hx-swap="outerHTML" _="on htmx:xhr:progress(loaded, total) set #attachmentProgress.value to (loaded/total)*100"> {% csrf_token %} {% include "forms/_field.html" with field=form.image %} {% include "forms/_field.html" with field=form.description %} <div class="buttons"> <button _="on click show #attachmentProgress with display:block then hide me">Upload</button> <progress id="attachmentProgress" value="0" max="100"></progress> </div> </form>