Skip to content

InputNumber: "-" sign on empty input is ignored #8548

@avasuro

Description

@avasuro

Describe the bug

When the InputNumber field is empty, focusing it and pressing the minus (-) key to enter a negative number causes 0.00 to be inserted automatically, and the caret jumps to the end of the input. As a result, it's impossible to enter a negative value directly. The user must first select and delete the entire 0.00 value and only then can enter a negative number.

I know that It worked correctly in PrimeReact v10.8.4.

Reproducer

https://codesandbox.io/p/sandbox/6h56ml

System Information

System:
    OS: macOS 26.5
    CPU: (10) arm64 Apple M4
    Memory: 71.41 MB / 24.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.19.4 - /Users/{{username}}/.nvm/versions/node/v20.19.4/bin/node
    Yarn: 1.22.22 - /opt/homebrew/bin/yarn
    npm: 10.8.2 - /Users/{{username}}/.nvm/versions/node/v20.19.4/bin/npm
  Browsers:
    Brave Browser: 147.1.89.132
    Chrome: 148.0.7778.216
    Firefox: 149.0.2
    Safari: 26.5
  npmPackages:
    primereact: 10.9.8 => 10.9.8
    react: 18.3.1 => 18.3.1

Steps to reproduce the behavior

  1. Open reproducer. There will be an empty number input.
  2. Focus it and type "-"

Actual result: "0.00" appears in the input, caret stays in position after the decimal point

Expected behavior

"-" should be displayed in the input, caret stays at the end of the input

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: Needs TriageIssue will be reviewed by Core Team and a relevant label will be added as soon as possible

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions