Recycle Data on Form Submit for Next Form

I was asked to save data entry time for users when many similar records are being typed in. So I wrote this method of basically saving certain data in global variables, then reloading the form and putting the data back in. Because of some complex fields, the putting back in part was not always easy. (This was for tasks relating to an audit, so some data could be the same for multiple records; the form has 4 levels of dependent dropdowns and 3 connected fields filtered by user role).

//  DATA-RECYCLING FOR A RECORD ADDITION FORM
$(document).on('knack-view-render.view_999999', function (event, view, data) {   

    setTimeout(function() {   // Wait to allow previous form to finish saving, if needed (our server is slow and this form does a lot of other stuff too)

            // set one field to Current User
            var userAttributes = window.Knack.getUserAttributes();
            var UserId = userAttributes.id;
            SetDropdownSelection('view_999999-field_1029', UserId);        
            
            // GET SAVED VALUES FROM LAST FORM SUBMISSION BY THIS USER, if any          
            // 1) preset TEXT fields (note the field ids do not include the view number like dropdowns do!!)
            $('#field_892').val(localStorage.getItem("TaskLot"));  
            $('#field_891').val(localStorage.getItem("TaskDesc"));                       

            // 2) preset DROPDOWN fields
            SetDropdownSelection('view_999999-field_936', localStorage.getItem("TaskProject"));        
            SetDropdownSelection('view_999999-field_899', localStorage.getItem("TaskEvent"));          
            SetDropdownSelection('view_999999-field_926', localStorage.getItem("TaskSalesManager"));   
            SetDropdownSelection('view_999999-field_927', localStorage.getItem("TaskDesigner"));    
  
            // 3) Trigger change of one dropdown only because another dropdown depends on it
            $('#view_999999-field_899').chosen().trigger("change");  

    }, 2000);

    // do some other stuff here...                    

    $("#view_999999 .kn-button").on("click", function() {      // intercept the Submit button

        // set local variables to save for next time      
        // get dropdown values like this
        localStorage.setItem("TaskProject", $('#view_999999-field_936').val());
        localStorage.setItem("TaskEvent", $('#view_999999-field_899').val());
        // these are not the normal user ids, they differ with each connected role 
        localStorage.setItem("TaskSalesManager", $('#view_999999-field_926').val());   
        localStorage.setItem("TaskDesigner", $('#view_999999-field_927').val());
        // get text field values like this instead
        var savedValues = {};
        $('#view_999999 input').each(function() {      
            savedValues[this.id] = $(this).val();
        });
        localStorage.setItem("TaskLot", savedValues.field_892);        
        localStorage.setItem("TaskDesc", savedValues.field_891);    

        // THEN Submit the form; form rule is set to automatically reload it
        $("#view_999999 form").submit();   

    });

});


function SetDropdownSelection (FieldID, Value) {
    FieldRef = "#"+FieldID;
    document.getElementById(FieldID).value = Value;     // Replace with your desired value 
    $(FieldRef).trigger("liszt:updated");               // Update the dropdown if using Chosen
    //$(FieldRef).chosen().trigger("change");           // Trigger change event (not needed for most, nothing is listening)
}