     if @props.multiple
       values = @state.values
       values[key] = value[key]
+      @props.onChange? @
     else
       values = value
+      setTimeout (=> @props.onChange? @), 10
     @setState focus: false, values: values
     @refs.input.setValue if @props.multiple then "" else value[key]
-    @props.onChange? @
 
   _getSuggestions: (query) ->
     suggestions = {}

    data = [data] if typeof data is 'string'
    values = {}
    values[key] = label for key, label of @state.dataSource when key in data
    @setState values: values
    @refs.input.setValue values[Object.keys(values)?[0]] unless @state.multiple

  setError: (data) ->
    @refs.input.setError data

  propTypes:
    type        : React.PropTypes.string
    dataSource  : React.PropTypes.object
    colors      : React.PropTypes.object
    multiple    : React.PropTypes.bool
    exact       : React.PropTypes.bool
    # -- Inherit for <Input/>
