---
id: api/commands/uncheck
title: uncheck | Cypress Documentation
description: Uncheck checkbox(es) in Cypress.
section: api
source_path: docs/api/commands/uncheck.mdx
version: 7ada28c0cd90e81cf56fd3fc73de6e6d45c16de6
updated_at: '2026-05-13T21:55:41.935Z'
---
# uncheck

Uncheck checkbox(es).

It is [unsafe](/llm/markdown/app/core-concepts/retry-ability.md#Only-queries-are-retried) to chain further commands that rely on the subject after `.uncheck()`.

## Syntax

```
.uncheck().uncheck(value).uncheck(values).uncheck(options).uncheck(value, options).uncheck(values, options)
```

### Usage

**Correct Usage**

```
cy.get('[type="checkbox"]').uncheck() // Unchecks checkbox element
```

**Incorrect Usage**

```
cy.uncheck('[type="checkbox"]') // Errors, cannot be chained off 'cy'cy.get('p:first').uncheck() // Errors, '.get()' does not yield checkbox
```

### Arguments

**value _(String)_**

Value of checkbox that should be unchecked.

**values _(Array)_**

Values of checkboxes that should be unchecked.

**options _(Object)_**

Pass in an options object to change the default behavior of `.uncheck()`.

| Option | Default | Description |
| --- | --- | --- |
| `animationDistanceThreshold` | [`animationDistanceThreshold`](/llm/markdown/app/references/configuration.md#Actionability) | The distance in pixels an element must exceed over time to be [considered animating](/llm/markdown/app/core-concepts/interacting-with-elements.md#Animations). |
| `force` | `false` | Forces the action, disables [waiting for actionability](#Assertions) |
| `log` | `true` | Displays the command in the [Command log](/llm/markdown/app/core-concepts/open-mode.md#Command-Log) |
| `scrollBehavior` | [`scrollBehavior`](/llm/markdown/app/references/configuration.md#Actionability) | Viewport position to where an element [should be scrolled](/llm/markdown/app/core-concepts/interacting-with-elements.md#Scrolling) before executing the command |
| `timeout` | [`defaultCommandTimeout`](/llm/markdown/app/references/configuration.md#Timeouts) | Time to wait for `.uncheck()` to resolve before [timing out](#Timeouts) |
| `waitForAnimations` | [`waitForAnimations`](/llm/markdown/app/references/configuration.md#Actionability) | Whether to wait for elements to [finish animating](/llm/markdown/app/core-concepts/interacting-with-elements.md#Animations) before executing the command. |

### Yields [Learn about subject management](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Subject-Management)

*   `.uncheck()` yields the same subject it was given.
*   It is [unsafe](/llm/markdown/app/core-concepts/retry-ability.md#Only-queries-are-retried) to chain further commands that rely on the subject after `.uncheck()`.

## Examples

### No Args

#### Uncheck all checkboxes

```
cy.get(':checkbox').uncheck()
```

#### Uncheck element with the id 'saveUserName'

```
cy.get('#saveUserName').uncheck()
```

### Value

#### Uncheck the checkbox with the value of 'ga'

```
cy.get('input[type="checkbox"]').uncheck(['ga'])
```

### Values

#### Uncheck the checkboxes with the values 'ga' and 'ca'

```
cy.get('[type="checkbox"]').uncheck(['ga', 'ca'])
```

## Notes

### Actionability

#### The element must first reach actionability

`.uncheck()` is an "action command" that follows all the rules of [Actionability](/llm/markdown/app/core-concepts/interacting-with-elements.md).

## Rules

### Requirements [Learn about chaining commands](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Chains-of-Commands)

*   `.uncheck()` requires being chained off a command that yields DOM element(s).
*   `.uncheck()` requires the element to have type `checkbox`.

### Assertions [Learn about assertions](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Assertions)

*   `.uncheck()` will automatically wait for the element to reach an [actionable state](/llm/markdown/app/core-concepts/interacting-with-elements.md).
*   `.uncheck()` will automatically [retry](/llm/markdown/app/core-concepts/retry-ability.md) until all chained assertions have passed.

### Timeouts [Learn about timeouts](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Timeouts)

*   `.uncheck()` can time out waiting for the element to reach an [actionable state](/llm/markdown/app/core-concepts/interacting-with-elements.md).
*   `.uncheck()` can time out waiting for assertions you've added to pass.

## Command Log

**_Uncheck the first checkbox_**

```
cy.get('[data-js="choose-all"]')  .click()  .find('input[type="checkbox"]')  .first()  .uncheck()
```

The commands above will display in the Command Log as:

When clicking on `uncheck` within the command log, the console outputs the following:

## History

| Version | Changes |
| --- | --- |
| [6.1.0](/llm/markdown/app/references/changelog.md#6-1-0) | Added option `scrollBehavior` |
| [0.6.12](/llm/markdown/app/references/changelog.md#0-6-12) | Added option `force` |
| [0.3.3](/llm/markdown/app/references/changelog.md#0-3-3) | `.uncheck()` command added |

## See also

*   [`.check()`](/llm/markdown/api/commands/check.md)
*   [`.click()`](/llm/markdown/api/commands/click.md)
