> For the complete documentation index, see [llms.txt](https://redd.gitbook.io/react-advanced-form/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://redd.gitbook.io/react-advanced-form/components/field/callbacks/on-change.md).

# onChange

## Specification

Event handler called on each field value change.

## Definition

```typescript
type OnChange = (params) => void
```

## Parameters

| Parameter name | Type     | Description                        |
| -------------- | -------- | ---------------------------------- |
| `event`        | `Event`  | Native event reference.            |
| `prevValue`    | `any`    | The previous value of a field.     |
| `nextValue`    | `any`    | The next value of a field.         |
| `fieldProps`   | `Object` | Props of the current field.        |
| `fields`       | `Object` | Reference to all fields of a form. |
| `form`         | `Object` | Form component reference.          |

## Default behavior

By default, `onChange` behaves as a callback method, allowing you to base your external logic based on the field updates. This doesn't change the controlled flow of the field.

The same onChange method can be used as the handler when working with controlled fields. In that case it is responsible for updating the data source used for setting a value on the field.

{% content-ref url="/pages/-LMpxPdDjjqDJohvphz-" %}
[Controlled fields](/react-advanced-form/architecture/controlled-fields.md)
{% endcontent-ref %}

## Example

```jsx
import React from 'react'
import { Form } from 'react-advanced-form'
import { Input } from 'react-advanced-form-addons'

export default class Example extends React.Component {
  handleUsernameChange = ({
    event,
    nextValue,
    prevValue,
    fieldProps,
    fields,
    form
  }) => {
    // ...
  }

  render() {
    return (
      <Form>
        <Input
          name="username"
          onChange={this.handleUsernameChange}
          required />
      </Form>
    )
  }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://redd.gitbook.io/react-advanced-form/components/field/callbacks/on-change.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
