Что не так с проверкой формы - PullRequest
1 голос
/ 08 мая 2020

По какой-то причине не работает валидация формы - разрешена отправка пустого поля, что не так?

TextFormField(
  validator: (val) {
    if (val.trim().length == 0) {
      return Lang.key(context, 'wrongDeviceName');
    } else {
      return null;
    }
  },
  onSaved: (val) =>
      _name = toBeginningOfSentenceCase(val.trim()),
  initialValue:
      id == 0 ? '' : model.byId(id, tableName).name.toString(),
  keyboardType: TextInputType.visiblePassword,
),

Как исправить?

1 Ответ

2 голосов
/ 08 мая 2020

Вы можете объявить функцию validateDeviceName в validator и реализовать ее:

validator: validateDeviceName

И затем

String validateDeviceName(String value)
{
    RegExp regex = new RegExp(r'^[A-Za-z0-9\s]*$');
    if (!regex.hasMatch(value))
        return 'Enter Valid Device Name';
    else
        return null;
}

Регулярное выражение ^[A-Za-z0-9\s]*$ соответствует

  • ^ - начало строки
  • [A-Za-z0-9\s]* - 0 или более (*) символов, которые являются буквами ASCII (A-Za-z), цифрами (0-9) или пробелами (\s)
  • $ - конец строки.

См. Демонстрацию регулярного выражения .

Есть несколько хороших подсказок около Проверка формы во Flutter здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...