JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://malsup.github.com/jquery.form.js"></script>
<form id="demo_form" action="http://jquery.malsup.com/form/file-echo2.php" method="post" enctype="multipart/form-data">
        <input type="file" id="demo_file" name="myfile"/><br>
        <input type="submit" value="Upload File to Server" />
    </form>

    <div class="progress">
        <div class="bar"></div >
        <div class="percent">0%</div >
    </div>
    <div id="status"></div>

CSS

body { padding: 30px }
form { display: block; margin: 20px auto; background: #eee; border-radius: 10px; padding: 15px }

.progress { position:relative; width:400px; border: 1px solid #ddd; padding: 1px; border-radius: 3px; }
.bar { background-color: #B4F5B4; width:0%; height:20px; border-radius: 3px; }
.percent { position:absolute; display:inline-block; top:3px; left:48%; }

JavaScript

var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');

    
$('#demo_file').bind('change',function(){
    $('#demo_form').submit();
})
    
$('form').submit({
    beforeSend: function() {
        status.empty();
        var percentVal = '0%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    uploadProgress: function(event, position, total, percentComplete) {
        var percentVal = percentComplete + '%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    complete: function(xhr) {
        status.html(xhr.responseText);
    }
});