title: Prevent React from capturing tab character
body: <p>I have an input field. I want React to check if a tab has been pressed in this field. If so, then process the contents of that field (e.g. ajax call). </p>
  
  <pre><code>getInitialState: function() {
    return { name: "" }; 
  },
  
  handleChangeName: function(e) {
    this.setState({name: e.target.value});
  },
  
  handleKeyUp: function(e) {
    if (e.keyCode == 9) {
      e.preventDefault();
      alert("Execute ajax call after tab pressed");
    }
  },
  
  &lt;input type="text" value={this.state.name} onChange={this.handleChangeName}
     onKeyDown={this.handleKeyUp} /&gt;
  </code></pre>
  
  <p>Problem:</p>
  
  <p>Tab keypress is intercepted and subsequent code executed but <strong>the tab character is inserted into the input text field</strong>. How do I prevent this from happening?</p>
  
  <p>I have tried various combinations of <code>preventDefault</code>, <code>stopPropagation</code>, <code>stopImmediatePropagation</code>. I can get a result of no further chars being inserted into the input text field, but then no subsequent code is executed.</p>
  
  <p>What am I missing?</p>