如果项目数量为3,则用户必须输入3序列号(逗号分隔)。我想防止用户进一步键入,如果逗号分隔字符串长度达到3。此外退格也应该工作,如果他想删除一些值。请在此指导我:
下面是我的代码:
TextFormField(
cursorColor: titleTextColor,
decoration: const InputDecoration(
labelText: "Serial #",
labelStyle: TextStyle(color: appBarColor),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: appBarColor),
),
//[focusedBorder], displayed when [TextField, InputDecorator.isFocused] is true
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: appBarColor),
),
),
validator: (val) {
if (val!.isEmpty) {
return 'Required';
}
},
controller: serialsController,
keyboardType: TextInputType.text,
textInputAction: TextInputAction.done,
onChanged: (val) {
if (val.isNotEmpty) {
int len = val.split(",").length;
if (double.parse(len.toString()) > double.parse(itemListOrderDetail[index].LineQuantity.toString())) {
showToast("Stop", FToast().init(context));
}
}
},
)
2条答案
按热度按时间ubbxdtey1#
在这种情况下,一个好的解决方案是使用面罩。检查此包easy mask https://pub.dev/packages/easy_mask
所以,当你改变qtd数u也改变掩码。
编辑。
你也可以使用onChanged prop来控制…
通过您的QTD变量或控制器更改数字3
6uxekuva2#
您可以使用名为
inputFormatters
的属性在flutterTextFormField
上实现此功能。您必须创建自己的类来扩展TextInputFormatter类。
例如: