# rich

## Tag autocomplete

- Description:

    The <rich:autocomplete> component is an auto-completing input-box with built-in Ajax capabilities. It supports client-side suggestions, browser-like selection, and customization of the look and feel.

    @author Nick Belaevski @author Brian Leathem

- Component Information
  Info | Value
  --- | ---
  Component Type | `org.richfaces.Autocomplete`
  Handler Class | `org.richfaces.view.facelets.AutocompleteHandler`
  Renderer Type | `org.richfaces.AutocompleteRenderer`
  Description | The <rich:autocomplete> component is an auto-completing input-box with built-in Ajax capabilities. It supports client-side suggestions, browser-like selection, and customization of the look and feel. @author Nick Belaevski @author Brian Leathem

- Attributes
  Name | Required | Type | Description
  --- | --- | --- | ---
  `autocompleteList` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.Object`) | A collection of suggestions that will be provided to the user
  `autocompleteMethod` | `false` | `javax.el.ValueExpression` (must evaluate to `javax.el.MethodExpression`) | A method which provides a list of suggestions according to a user-provided filtering value
  `autofill` | `false` | `javax.el.ValueExpression` (must evaluate to `boolean`) | Causes the combo-box to fill the text field box with a matching suggestion as the user types
  `binding` | `false` | `javax.el.ValueExpression` (must evaluate to `javax.faces.component.UIComponent`) | The value binding expression used to wire up this component to a component property of a JavaBean class
  `clientFilterFunction` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | A javascript function used to filter the result list returned from the ajax call to the server. This function should have two parameters; subString(current input value considering tokens) and value (currently iterated item value) and return boolean flag which means if the value satisfies the substring passed. The function will be called for every available suggestion in order to construct a new list of suggestions. Default: A javascript method called startsWith
  `converter` | `false` | `javax.el.ValueExpression` (must evaluate to `javax.faces.convert.Converter`) | Converter instance registered with this component.
  `converterMessage` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | A ValueExpression enabled attribute that, if present, will be used as the text of the converter message, replacing any message that comes from the converter.
  `disabled` | `false` | `javax.el.ValueExpression` (must evaluate to `boolean`) | Flag indicating that this element must never receive focus or be included in a subsequent submit. Default value - "false"
  `fetchValue` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.Object`) | A value to set in the target input element on a choice suggestion that isn't shown in the suggestion table. It can be used for descriptive output comments or suggestions. If not set, all text in the suggestion row is set as a value
  `id` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | The component identifier for this component. This value must be unique within the closest parent component that is a naming container.
  `immediate` | `false` | `javax.el.ValueExpression` (must evaluate to `boolean`) | Flag indicating that this component's value must be converted and validated immediately (that is, during Apply Request Values phase), rather than waiting until Process Validations phase.
  `inputClass` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Assigns one or more space-separated CSS class names to the input element
  `layout` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Type of the layout encoded using nested components should be defined using layout attribute. Possible values are: list suggestions wrapped to HTML unordered list div suggestions wrapped with just div element table suggestions are encoded as table rows, column definitions are required in this case Default: div
  `minChars` | `false` | `javax.el.ValueExpression` (must evaluate to `int`) | Minimal number of chars in input to activate suggestion popup
  `mode` | `false` | `javax.el.ValueExpression` (must evaluate to `org.richfaces.component.AutocompleteMode`) | Determine how the suggestion list is requested: client pre-loads data to the client and uses the input to filter the possible suggestions ajax fetches suggestions with every input change using Ajax requests lazyClient lazy-loads data to the client and uses the input to filter the possible suggestions. The filtering does not start until the input length matches a minimum value. Set the minimum value with the minChars attribute. cachedAjax lazy-loads data via Ajax requests when the input length matches a minimum value. Set the minimum value with the minChars attribute. All suggestions are handled on the client until the input prefix is changed, at which point a new request is made based on the new input prefix Default: cachedAjax
  `onbeforedomupdate` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | The client-side script method to be called after the ajax response comes back, but before the DOM is updated
  `onbegin` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | The client-side script method to be called before an ajax request.
  `onblur` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when this element loses focus.
  `onchange` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when this element loses focus and its value has been modified since gaining focus.
  `onclick` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is clicked over this element.
  `oncomplete` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | The client-side script method to be called after the DOM is updated
  `ondblclick` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is double clicked over this element.
  `onfocus` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when this element receives focus.
  `onkeydown` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a key is pressed down over this element.
  `onkeypress` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a key is pressed and released over this element.
  `onkeyup` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a key is released over this element.
  `onlistclick` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is clicked over the popup list element.
  `onlistdblclick` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is double clicked over this element.
  `onlistkeydown` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a key is pressed down over this element.
  `onlistkeypress` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a key is pressed and released over this element.
  `onlistkeyup` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a key is released over this element.
  `onlistmousedown` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is pressed down over this element.
  `onlistmousemove` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is moved within this element.
  `onlistmouseout` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is moved away from this element.
  `onlistmouseover` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is moved onto this element.
  `onlistmouseup` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is released over this element.
  `onmousedown` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is pressed down over this element.
  `onmousemove` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is moved within this element.
  `onmouseout` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is moved away from this element.
  `onmouseover` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is moved onto this element.
  `onmouseup` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when a pointer button is released over this element.
  `onselectitem` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Javascript code executed when an item is selected
  `popupClass` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Assigns one or more space-separated CSS class names to the content of the popup suggestion element
  `rendered` | `false` | `javax.el.ValueExpression` (must evaluate to `boolean`) | Flag indicating whether or not this component should be rendered (during Render Response Phase), or processed on any subsequent form submit. The default value for this property is true.
  `required` | `false` | `javax.el.ValueExpression` (must evaluate to `boolean`) | Flag indicating that the user is required to provide a submitted value for this input component.
  `requiredMessage` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | A ValueExpression enabled attribute that, if present, will be used as the text of the validation message for the "required" facility, if the "required" facility is used.
  `selectFirst` | `false` | `javax.el.ValueExpression` (must evaluate to `boolean`) | Boolean value indicating whether the first suggestion item is selected as the user types Default: true
  `selectedItemClass` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Assigns one or more space-separated CSS class names to the selected suggestion entry
  `showButton` | `false` | `javax.el.ValueExpression` (must evaluate to `boolean`) | Boolean value indicating whether to display a button to expand the popup suggestion element Default: false
  `style` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | CSS style(s) to be applied when this component is rendered.
  `styleClass` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Space-separated list of CSS style class(es) to be applied when this element is rendered. This value must be passed through as the "class" attribute on generated markup.
  `tabindex` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Position of this element in the tabbing order for the current document. This value must be an integer between 0 and 32767.
  `tokens` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | Allow a user to enter multiple values separated by specific characters. As the user types, a suggestion will present as normal. When they enter the specified token character, this begins a new suggestion process, and the component will then only use text entered after the token character for suggestions. Make sure that no character defined in tokens is part of any suggestion value. E.g. do not use space as a token if you expect to allow spaces in suggestion values. When tokens defined, they can be naturally separated by space character - input separated by tokens ', ' or ' ,' will be considered as it would be ',' token without any space.
  `validator` | `false` | `javax.el.ValueExpression` (must evaluate to `javax.faces.el.MethodBinding`) | MethodExpression representing a validator method that will be called during Process Validations to perform correctness checks on the value of this component. The expression must evaluate to a public method that takes FacesContext, UIComponent, and Object parameters, with a return type of void.
  `validatorMessage` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | A ValueExpression enabled attribute that, if present, will be used as the text of the validator message, replacing any message that comes from the validator.
  `value` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.Object`) | The current value of this component.
  `valueChangeListener` | `false` | `javax.el.ValueExpression` (must evaluate to `javax.faces.el.MethodBinding`) | MethodExpression representing a value change listener method that will be notified when a new value has been set for this input component. The expression must evaluate to a public method that takes a `ValueChangeEvent` parameter, with a return type of void, or to a public method that takes no arguments with a return type of void. In the latter case, the method has no way of easily knowing what the new value is, but this can be useful in cases where a notification is needed that "this value changed".
  `var` | `false` | `javax.el.ValueExpression` (must evaluate to `java.lang.String`) | A request-scope attribute via which the data object for the current row will be used when iterating

Output generated by Vdldoc View Declaration Language Documentation Generator.