anchor.diff:      ping.clientId = this.props.clientId;
       return (
         <form className="PingBox" onSubmit={this.handleSubmit}>
  -        <input type="submit" id="button" value={ping.pingButton} />
  -        <input type="text" placeholder="Median" id="ping_result_lag_ms" readOnly />
  -        <input type="text" placeholder="Progress" id="ping_progress" readOnly />
  +        <input type="submit" id="button" value={this.state.buttonValue} disabled={this.state.buttonDisabled} />
  +        <input type="text" placeholder="Median" id="ping_result_lag_ms" value={this.state.resultValue} readOnly />
  +        <input type="text" placeholder="Progress" id="ping_progress" value={this.state.progressValue} readOnly />
           msec
         </form>
       );
  
positive.code:           }
          },
          success: function(data) {
            e.target.button.value = ping.pingButton;
            e.target.ping_result_lag_ms.value = "";
            e.target.ping_progress.value = "";
          },
          error: function(xhr, status, err) {
            console.error(path, status, err.toString());
          }
        });
      };
    },
  
negative.code: };
  
  var PingBox = React.createClass({
    getInitialState: function() {
      return {
        buttonValue: ping.pingButton,
        buttonDisabled: false,
        resultValue: "",
        progressValue: ""
      };
    },
    handleSubmit: function(e) {
      e.preventDefault();
      if (this.state.buttonValue == ping.pingButton) {
        var ping_progress = "";
        this.setState({
          buttonValue: ping.pingingButton,
          buttonDisabled: true,
          resultValue: "",
          progressValue: ping_progress
        });
        Pinger.measure(
          "<%= path_to_javascript 'ping' %>",
          function(lag){
            ping_progress = ping_progress + " " + lag;
            this.setState({progressValue: ping_progress});
          }.bind(this),
          function(lag){
            ping.result = lag;
            this.setState({
              buttonValue: ping.postButton,
              buttonDisabled: false,
              resultValue: lag
            });
          }.bind(this)
        ).bind(this);
      } else if (this.state.buttonValue == ping.postButton) {
        $.ajax({
          url: "/ping_results",
          type: "POST",
  