forms: Provide a submission value that excludes disabled/hidden fields
Author: xripcsuCreated Sep 15, 2026Updated Sep 15, 2026
Labelsarea: formsgemini-triaged
Which @angular/* package(s) are relevant/related to the feature request?
forms
Description
Signal Forms currently expose form().value(), which represents the complete value of the underlying model, including fields that are disabled or hidden.
It would be useful to have a separate API that returns only values that are enabled and not hidden
For example:
const model = signal({
name: 'John',
email: '[email protected]',
role: 'admin',
});
const myForm = form(model, (schemaPath) => {
disabled(schemaPath.role);
});
Currently we can get
{
name: 'John',
email: '[email protected]',
role: 'admin'
}
with myForm().value(); or model()
but we can't get this
{
name: 'John',
email: '[email protected]',
}
this is possible to do in reactive forms with value/getRawValue() so I think that signal forms should also provide this possibility
Proposed solution
FieldState object could include signal with value without disabled/hidden fields
so to get
{
name: 'John',
email: '[email protected]',
}
we could use something like myForm().submitValue();
Alternatives considered
Another possible approach would be to expose this through the existing submission API, for example:
submit(form, ({ value }) => {
// value contains only fields that should be submitted
});
Source: angular/angular