在 Formik 和 Material-UI 中存储未屏蔽的 InputMask 值
Store unmasked InputMask value in Formik and Material-UI
好的,所以我在 Formik 表单中通过 Material UI 的文本字段的自定义样式实现实现了输入掩码:
<InputMask
mask="999-99-9999"
maskChar="X"
value={values.ssn}
onChange={handleChange}
onBlur={handleBlur}
className={classNames(
styles.inputField,
styles.override
)}
>
{() => (
<LNTextField
name="ssn"
label="Social Security Number"
error={touched.ssn && errors.ssn ? true : false}
helperText={
touched.ssn && errors.ssn ? "* " + errors.ssn : ""
}
type="text"
/>
)}
</InputMask>
现在的问题是,在 values.ssn
中,值与掩码、连字符和所有内容一起存储,我希望它存储为没有 [=19] 的 number/string =],我该怎么做?
根据@Kiran LMs 评论代码示例,这是通过添加它而不是现有的 onChange
以及来自 Formik
的解构 setFieldValue
实现的
onChange={e => {
const value =
e.target.value
.replace(/-/g, "")
.replace(/X/g, "") || "";
setFieldValue("ssn", value);
}}
非常感谢他们。
好的,所以我在 Formik 表单中通过 Material UI 的文本字段的自定义样式实现实现了输入掩码:
<InputMask
mask="999-99-9999"
maskChar="X"
value={values.ssn}
onChange={handleChange}
onBlur={handleBlur}
className={classNames(
styles.inputField,
styles.override
)}
>
{() => (
<LNTextField
name="ssn"
label="Social Security Number"
error={touched.ssn && errors.ssn ? true : false}
helperText={
touched.ssn && errors.ssn ? "* " + errors.ssn : ""
}
type="text"
/>
)}
</InputMask>
现在的问题是,在 values.ssn
中,值与掩码、连字符和所有内容一起存储,我希望它存储为没有 [=19] 的 number/string =],我该怎么做?
根据@Kiran LMs 评论代码示例,这是通过添加它而不是现有的 onChange
以及来自 Formik
setFieldValue
实现的
onChange={e => {
const value =
e.target.value
.replace(/-/g, "")
.replace(/X/g, "") || "";
setFieldValue("ssn", value);
}}
非常感谢他们。