【发布时间】:2019-07-16 08:08:19
【问题描述】:
在我的 React 组件中,我有输入,人们应该在其中输入他们的信用卡号。我想应用特殊的信用卡格式,即每 4 个数字之间的空格(如 4444 4444 4444 4444 等)。我想在输入过程中直接并立即使用这种格式。
重要的是,我想阻止输入(以及粘贴、拖动和任何其他可能的输入更改)除数字以外的任何其他字符。
首先,我添加了 React 的 input onChange 事件函数,该函数测试输入是否仅包含数字。如果是这样,onChange 会执行 Formik 的 handleChange 方法。所以现在我们确定输入的值只包含字母。
问题来自数据格式。我已经为输入值分配了一个函数,该函数返回格式化的数据。所以现在,输入的 value 属性中没有 44444,而是 4444 4 value。
更改后,我无法输入任何其他字符,因为4444 4 值(最后一个字符之间有空格)未通过仅包含字母的测试。
我也没有使用任何其他解决方案。这是我想到的最好的。
【问题讨论】:
-
最简单的方法是在提交时检查格式并使用示例格式显示错误
-
使用掩码而不是提供实际空格
标签: javascript reactjs validation input formik