Fix empty value attribute #68
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Something changed in React in version 16.3 that caused the
valueattribute to appear on an input when it had adefaultValueofundefinedornull. In previous versions the attribute would be omitted unless it had a value.For example, this JSX:
will generate this HTML:
whereas in versions prior to 16.3, it would generate this HTML:
This change can cause an issue with checkbox values. When the value attribute is omitted on a checkbox, the target value will be
"on"when checked. When a checkbox has the value attribute set, the target value will be that of the attribute when checked. In the case where the attribute is present without a value, the target value will be""when checked, which is a falsey value.This PR implements some logic for setting the
valueanddefaultValueon child elements only when needed to workaround this issue. Also, checkboxes will now have a value oftruewhen checked and the value attribute is empty.