reactjs - 如何自定义键盘输入和格式?
问题描述
我已经从 升级material-ui-pickers 2.x
到@material-ui/pickers 3.x
(都带有@date-io/moment
)。现在我正在为键盘输入和格式而苦苦挣扎。
2.x
与我使用的版本format="D.M.YYYY"
。用户可以输入例如1.1.2000
or04.08.2000
或12.12.2000
。
但是对于版本3.x
,输入仅严格允许1.1.2000
. 不可能有 2 位数的日期或月份。虽然我改为format="DD.MM.YYYY"
,但现在不可能输入没有前导零的 1 位数的日期或月份。例如,键入1.1.2000
结果为11.20.00
.
如何实现以下一种(或两种)行为?
用户可以输入他想要的任何内容,包括字符(与 version 相同的行为
2.x
)。或者:听
.
输入,然后跳到下一个输入部分。即用户类型1.2.2000
,它将设置1
为日,然后跳转到月份部分,因为用户按下.
键,然后设置2
为月份,然后跳转到年份部分,因为用户按下.
然后设置2000
为年份。
解决方案
refuse
我为案例 1 找到了一种使用and的 hacky 解决方案rifmFormatter
:
<KeyboardDatePicker
refuse={/[^\d\.]+/gi}
rifmFormatter={value => value.replace(/[^\d\.]+/gi, '')}
format={"D.M.YYYY"}
...
/>
这将只允许以任何顺序输入数字和点,并删除输入屏蔽。
不是最佳解决方案,但比以前更好。
推荐阅读
- c# - ILogger 未将 TRACE 和 DEBUG 消息写入目标
- python - 如何将外观相似的列合并为一个并在熊猫中为其分配名称?
- faunadb - 如何从动物群中的 Ref 获取 ID?
- c - 在C中没有声明枚举变量的情况下使用枚举没有问题吗?
- vba - 如何使用 Outlook VBA 从 Excel 制作 PasteSpecial 表
- regex - 使用 Sed 和 Regex 将字符串替换为空格
- swift - Swift中图像周围的水印/边框将分享到Instagram Stories
- swiftui - SwiftUI - ActionSheet 中的动态按钮列表
- swift - 从 Firebase 获取数据 - 完成处理程序?
- selenium - 在 Selenium IDE 中打印数组元素