【发布时间】:2021-03-24 06:38:07
【问题描述】:
我正在尝试在 reactjs 中进行验证。 例如,我有一个名为“name”的字段,每次输入名称时,它必须大于或等于 2。当名称小于 2 时有效,但如果大于 2,消息仍然出现。 这是我的代码:
const [data, setData] = React.useState({
nameValid: true,
prenumeValid: true,
check_textInputChange: false,
name: "",
});
const handleValidUser = (val) => {
if (val.length >= 2) {
setData({
...data,
nameValid: true,
});
} else {
setData({
...data,
nameValid: false,
});
}
};
const textInputChange = (val) => {
if (val.length >= 2) {
setData({
...data,
name: val,
nameValid: true,
check_textInputChange: true,
});
} else {
setData({
...data,
name: val,
nameValid: false,
check_textInputChange: false,
});
}
};
<TextField
type="text"
variant="outlined"
label="Nume"
required
fullWidth
autofocus
validate
style={{ marginBottom: "1em" }}
onChange={(val) => textInputChange(val)}
onBlur={(e) => handleValidUser(e)}
/>
{data.nameValid ? null : (
<text>The name has to be at least 2 letters long</text>
)}
【问题讨论】:
-
下次,我建议您在发布问题之前先修正缩进。
标签: javascript reactjs material-ui frontend