anchor.diff:      if (this.props.onBlur) this.props.onBlur.apply(null, arguments);
     }
   
  -  export function onChange (autoSave, ev) {
  -    var value = ev.target.value;
  +  export function onChange (autoSave, evt) {
  +    var value = evt.target.value;
  +    if (this.props.onChange) this.props.onChange(evt);
  +    if (this.props.saveOnChange) this.saveValue(autoSave, value, evt)
  +  }
  +
  +  export function saveValue (cb, value, evt) {
       var hasValue = !!value;
  -    if (this.props.onChange) this.props.onChange.apply(null, arguments);
       if (this.state.hasValue !== hasValue) this.setState({hasValue: hasValue});
       this.setState({value: value});
  -    if (autoSave) autoSave(ev, value.trim());
  +    if (cb) cb(evt, value.trim()); 
     }
  
positive.code: 
    export function getDefaultProps () {
      return {
        submitOnEnter: true,
        type: 'text'
      };
  
negative.code:   export function onKeyDown (onChange, evt) {
      if (this.props.submitOnEnter && evt.keyCode === KEY_NAMES.enter) {
        evt.preventDefault();
        this.saveValue(onChange, evt.target.value, evt);
      }
    }
  
  