Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controlled numeric input gets cleared when unfocused #17609

Open
kripod opened this issue Dec 15, 2019 · 9 comments
Open

Controlled numeric input gets cleared when unfocused #17609

kripod opened this issue Dec 15, 2019 · 9 comments

Comments

@kripod
Copy link

kripod commented Dec 15, 2019

Do you want to request a feature or report a bug?
I would like to report a bug.

What is the current behavior?
A numeric input field gets cleared accidentally on several occasions.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have dependencies other than React. Paste the link to your JSFiddle (https://jsfiddle.net/Luktwrdm/) or CodeSandbox (https://codesandbox.io/s/new) example below:

  1. Open this sandbox
  2. Type “12.” into the field, with the trailing decimal separator
  3. Unfocus the control
  4. Append “.” to the field’s value to see “12..”
  5. Unfocus the control once again and see that the number has completely disappeared

What is the expected behavior?

Similar to how uncontrolled inputs work (remove the value prop and then repeat the steps above), the input should not be cleared on blur.

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?

I’m using React 16.12.0 and experienced the same behavior with the latest version of Chrome and iOS Safari. Regarding this bug, I have no experience with previous versions of React.

@AfterThreeYears
Copy link

i think this is HTML Input elememt features, because you input not number, so input well clean content.

@caner-karaman
Copy link

This is not React behavior, Its come from browser

@kripod
Copy link
Author

kripod commented Dec 15, 2019

This isn't a browser bug. I've just set up a sandbox with the exact same code, but using Preact instead of React: https://codesandbox.io/s/objective-antonelli-o0f2x

Input "12." -> Unfocus -> Append "." -> Unfocus works just fine with Preact, but React clears the input field unintentionally.

@vcanales
Copy link

vcanales commented Dec 17, 2019

Some investigation led me to 29d9710 which took me here. This is definitely a bug following that logic, and it seems to be related to not checking for special cases of validity in the case of input[type=number] when onBlur happens.

That being said, this issue will go away when the changes made in #13526 are no longer under a feature flag (disableInputAttributeSyncing). I checked this by modifying my copy of react-dom, but you can probably also build react with the flag set to true.

@stale
Copy link

stale bot commented Mar 16, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contribution.

@stale stale bot added the Resolution: Stale Automatically closed due to inactivity label Mar 16, 2020
@stale
Copy link

stale bot commented Mar 23, 2020

Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you!

@stale stale bot closed this as completed Mar 23, 2020
@stale
Copy link

stale bot commented Mar 30, 2020

Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you!

@gaearon gaearon reopened this Apr 1, 2020
@stale stale bot removed the Resolution: Stale Automatically closed due to inactivity label Apr 1, 2020
@gaearon
Copy link
Collaborator

gaearon commented Apr 1, 2020

This is probably still a bug.

@gaearon
Copy link
Collaborator

gaearon commented Apr 1, 2020

Would anyone be interested in adding a fixture for this to fixtures/dom? So we can track this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants