gpt4 book ai didi

javascript - 如何阻止在 React Hook Form 输入中输入 "e"和 "-"字符?

转载 作者:行者123 更新时间:2023-12-04 13:09:34 27 4
gpt4 key购买 nike

我正在尝试在 react-hook-form 中设置电话号码输入图书馆。
我将输入类型设置为数字,但它仍然接受“e”和“-”字符。
我试图像这样阻止它:

<Controller
name="phone"
control={control}
rules={{ required: true }}
render={({ onChange, value, ref }) => (
<Input
ref={ref}
type="number"
label="phone"
onChange={(e) =>
/[^e]/.test(e.target.value) && onChange(e.target.value)
}
val={value}
/>
但它不能正常工作。
任何建议如何解决这个问题?

最佳答案

如果你想阻止某些键被按下,你可以隐藏 keydown检查失败后的事件:

<Input
onKeyPress={(e) => {
if (e.key === "e" || e.key === "-") {
e.preventDefault();
}
}}
/>
但是,如果您允许所有键但在按下后验证它,您可以使用 pattern像这样的选项:
<Controller
name="phone"
control={control}
rules={{ required: true, pattern: /^\d+$/ }}
render={(props) => {
const { onChange, value, ref } = props.field; // v7. use props if you're using v6
const { error } = props.meta;

return (
<Input
ref={ref}
type="number"
label="phone"
onChange={onChange}
val={value}
/>
);
}}
/>

关于javascript - 如何阻止在 React Hook Form 输入中输入 "e"和 "-"字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67019372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com