user11008199
user11008199

Reputation:

how to save input value of text form field as soon as type completed in flutter

i have a text form field that user enter to it a code that sent to it and i must decide if input code is true or false but can not save value of text form field i have a button like it

 GestureDetector(
        onTap: ()  {
          _formKey.currentState.save();
          setState(() {
            inputcode=key.getter("sms");
            print(inputcode);
            print(verifycode);
          });
        },

        child: inputcode==verifycode?send:
        VirtualBotton("please enter correct code","ok",40.0,10.0,width: 120.0,),
      )

but i must press two times button for done this work in this code when i enter correct code first run virtual Button class and second times that i press button run correct code how to run on tap before build child in button this is text form field

TextFormField(
    inputFormatters: [
      new LengthLimitingTextInputFormatter(30),
    ],

    onSaved: (value) {
      key.setter(id, value);


    },
    textAlign: alignment == null ? TextAlign.right : alignment,
    maxLines: maxlines==null?1:maxlines,
    style: TextStyle(
      fontSize: 14,

    ),
    textDirection: TextDirection.rtl,
    controller: ctrl,

    validator: (String value) {
      if (value.isEmpty) {
        return "";
      }
      return null;
    },

    decoration: InputDecoration(
        border: InputBorder.none,
        contentPadding: const EdgeInsets.all(0.0),
        hintText: _hint,
        errorStyle: TextStyle(height: 0),
        hintStyle: TextStyle(

            color: hintconlor == null ? Colors.grey : hintconlor,
            fontSize: hintsize == null ? 13 : hintsize)),
  ),
);

Upvotes: 1

Views: 7275

Answers (1)

Mikhail Ponkin
Mikhail Ponkin

Reputation: 2711

you can add TextEditingController and listen to controller changes. Here are docs with examples

Upvotes: 1

Related Questions