我已经从material-ui-pickers 2.x
升级到@material-ui/pickers 3.x
(都与@date-io/moment
一起升级)。现在,我在键盘输入和格式方面苦苦挣扎。
在版本2.x
中,我使用了format="D.M.YYYY"
。用户可以输入例如1.1.2000
或04.08.2000
或12.12.2000
。
但是对于版本3.x
,输入仅严格允许1.1.2000
。不能使用两位数的日期或月份。虽然我更改为format="DD.MM.YYYY"
,但是现在不可能输入没有前导零的1位数字的日期或月份。例如。键入1.1.2000
会得到11.20.00
。
如何实现以下一种或两种行为?
用户可以输入任何想要的内容,包括字符(与版本2.x
相同)。或者:
收听.
输入,然后跳到下一个输入部分。即用户键入1.2.2000
,它将设置1
为一天,然后跳转到月份部分,因为用户按下了.
键,然后将2
设置为月份,然后跳转到年份部分,因为用户按下了.
,然后将2000
设置为年份。
答案 0 :(得分:1)
我发现了一种使用refuse
和rifmFormatter
的情况1的解决方案:
<KeyboardDatePicker
refuse={/[^\d\.]+/gi}
rifmFormatter={value => value.replace(/[^\d\.]+/gi, '')}
format={"D.M.YYYY"}
...
/>
这将只允许以任意顺序输入数字和点,并删除输入掩码。
不是最佳解决方案,但是比以前更好。