Forms: conditional logic (4/5) — server-side render and validation - #50979
Open
enejb wants to merge 1 commit into
Open
Forms: conditional logic (4/5) — server-side render and validation#50979enejb wants to merge 1 commit into
enejb wants to merge 1 commit into
Conversation
Two problems the browser cannot solve on its own. A required field that conditional logic hides used to block submission: it was invalid, but the visitor could not see it to fill it in. Validation now skips fields the rules hide, evaluated server-side from the submitted values rather than trusting anything the browser reports. Parse-time validation is deferred for conditional fields, which otherwise wrote a static error before any answers existed. Fields that start hidden used to render visible and then disappear once the runtime booted. The initial visibility is now resolved while rendering and stamped onto the markup, so the form is correct in its first paint. Values prefilled through the query string are taken into account, so a link that prefills the field a rule depends on renders the resulting state directly. Only hidden fields are dropped from the stored feedback, so a response records what the visitor was actually asked.
This was referenced Jul 31, 2026
Contributor
|
Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.
Interested in more tips and information?
|
Contributor
|
Thank you for your PR! When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:
This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖 Follow this PR Review Process:
If you have questions about anything, reach out in #jetpack-developers for guidance! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposed changes
Part 4 of 5 splitting #50938. Two problems the browser cannot solve on its own.
A required field that conditional logic hides used to block submission. It was invalid, but the visitor could not see it to fill it in. Validation now skips fields the rules hide, evaluated server-side from the submitted values rather than trusting anything the browser reports. Parse-time validation is deferred for conditional fields, which otherwise wrote a static error before any answers existed.
Fields that start hidden used to render visible and then disappear once the runtime booted. Initial visibility is now resolved while rendering and stamped onto the markup, so the form is correct in its first paint. Values prefilled through the query string are taken into account, so a link that prefills the field a rule depends on renders the resulting state directly.
Only hidden fields are dropped from the stored feedback, so a response records what the visitor was actually asked.
Related product discussion/links
Does this pull request change what data or activity we track or use?
A form response no longer stores values for fields that conditional logic hid at submit time. Nothing new is collected.
Testing instructions
With the flag on and a form that hides a required field:
?fieldname=valueprefilling the field a rule depends on → the dependent field renders in its resulting state immediately.Also:
jetpack test php packages/forms.