Flutter FormBuilderDropdown validation is not working

62 Views Asked by At

I have a FormBuilderDropdown wrapped in FormBuilder. Validation is set to required using form_builder_validators. After I select a value from the dropdown, my suffix icon changes to a green check. However when I validate the form before submitting, I get a validation error "This value is required" on the dropdown.

FormBuilderDropdown<String>(
                  name: "meter_id",
                  validator: FormBuilderValidators.required(),
                  onChanged: (value) {
                    setState(() {
                      _meterHasError = !(_formKey
                              .currentState?.fields['meter_id']
                              ?.validate() ??
                          false);
                    });
                  },
                  decoration: InputDecoration(
                    suffix: _meterHasError
                        ? const Icon(Icons.error, color: Colors.red)
                        : const Icon(Icons.check, color: Colors.green),
                    hintText: 'Select Meter',
                  ),
                  items: widget.meters
                      .map((e) => DropdownMenuItem(
                            value: e.id,
                            child: Text(e.name),
                          ))
                      .toList()),

My submit function is such

  _submit() {
    if (_formKey.currentState!.validate()) {
      _formKey.currentState!.save();
       (...)

I tried to change the validation options to minLength but no luck. Any ideas?

0

There are 0 best solutions below