Flutter Web 提交表单回车键

DRi*_*ing 9 flutter flutter-web

当用户在填写表单时点击输入按钮时,有没有办法调用提交按钮。这是我的表单代码:

@override
  Widget build(BuildContext context) {
    String _email;
    return AlertDialog(
      title: Text('Password Reset'),
      content: Form(
        key: _formKey,
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            TextFormField(
              decoration: InputDecoration(
                hintText: 'Email',
                labelText: 'Email',
              ),
              autofocus: true,
              maxLength: 30,
              validator: (value) {
                if (value.isEmpty) {
                  return 'Email is required';
                }
                return null;
              },
              onSaved: (input) => _email = input,
            ),
          ],
        ),
      ),
      actions: [
        RaisedButton(
          onPressed: () async {
            if (_formKey.currentState.validate()) {
              _formKey.currentState.save();
              var result = await auth.sendPasswordResetEmail(_email);
              print(result);
              Navigator.of(context).pop();
            }
          },
          child: Text('Reset'),
        )
      ],
    );
  }
Run Code Online (Sandbox Code Playgroud)

Abh*_*ran 8

对于TextFormField处理此问题的属性将是onFieldSubmitted. 您可以将代码从您onPressed的复制RaiseButton到此。例如

onFieldSubmitted: (value) {
                if (_formKey.currentState.validate()) {
                  _formKey.currentState.save();
//               var result = await auth.sendPasswordResetEmail(_email);
//               print(result);
                  print(_email);
                  Navigator.of(context).pop();
                }
              },
Run Code Online (Sandbox Code Playgroud)

一个完整的例子可作为代码笔在这里

您可能也对它感兴趣,RawKeyboardListener但它无法识别enter密钥。但是可以听其他键,例如Shift,CapsLock等。

  • RawKeyboardListener 如何无法识别键盘上最重要的按键之一......这是真的吗? (2认同)