Chrome scrolling to the top of the page after a remote form request

You should be listening for and catching the submit event on your form, not the button click event. If you use e.preventDefault() in that case, you should be able to preclude the default submission behavior causing your page to refresh. So your approach would resemble something to this effect, roughly:

$(document).ready(function () {
  // ***** Listen to submit event on the form itself ***** //
  $('#form').submit(function (e) {

    e.preventDefault();

    // Capture data from form 
    // and manually submit by AJAX here

  });
});

If you are using e.preventDefault(), the page wouldn't refresh at all after the AJAX request is successful. So you need to refresh the page in the javascript with window.location.reload()