title: jQuery - AJAX error: does not re-enable submit button
body: <p>I have been working to get code which stops the user from sending multiple AJAX requests. <code>.one()</code> does not work for me. I have decided to use  <code>.prop('disabled');</code> on my "submit" button to stop it from being able to send any more AJAX requests.</p>
  
  <p>The theory for the flow-line was: user clicks submit button. send AJAX. disable submit. AJAX finishes. re-enable submit button.</p>
  
  <p>I <a href="https://jsfiddle.net/4lackof/hoe08dpq/1/" rel="nofollow">tried</a> to put that to the test, but seems to not be working. Here's a snippet of my code (same as the jsfiddle I just linked):</p>
  
  <p><div class="snippet" data-lang="js" data-hide="true" data-console="true" data-babel="false">
  <div class="snippet-code snippet-currently-hidden">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>//runs on $(document).ready();
  console.log($('#submit').prop('disabled'));
  
  $(document).on('click', '#submit', function(e) {
    $.ajax({
        type: 'GET',
        url: '/FakeURL',
      })
      .done(function(data, textStatus, jqXHR) {
        $('#gimme-data').append(data, textStatus, jqXHR);
      })
      .fail(function(jqXHR, textStatus, errorThrown) {
        $('#gimme-data').append(jqXHR, textStatus, errorThrown);
      })
      .always(function(data_jqXHR, textStatus, jqXHR_errorThrown) {
        $('#gimme-data').append(data_jqXHR, textStatus, jqXHR_errorThrown);
        $('#submit').prop('disabled', 'false');
        console.log($('#submit').prop('disabled'));
      });
  });
  $(document).ajaxStart(function() {
    $('#submit').prop('disabled', 'true');
    console.log($('#submit').prop('disabled'));
  }).ajaxStop(function() {
    $('#submit').prop('disabled', 'false');
    console.log($('#submit').prop('disabled'));
  });</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"&gt;&lt;/script&gt;
  &lt;input type="submit" id="submit" class="first" value="GO!" title="Log In"&gt;
  &lt;div id="gimme-data"&gt;
  
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>As you can see when you run it, <code>$('#submit').prop('disabled')</code> always stays true (except, at the beginning, before anything happens).</p>
  
  <p>This is after <code>$('#submit').prop('disabled', 'false');</code> gets set on both <code>.ajaxStop();</code> AND <code>.always()</code>;</p>
  
  <blockquote>
    <p>Does anyone know why this happens and how to fix it?</p>
  </blockquote>