我正在进行十进制数字输入验证,我想防止连续第二次输入“point”
在上面的输入框中,第一次按下按键后,我应该无法连续第二次按下它。
到目前为止我已经做到了-
if (e.which === 190) {
if(value === '') {
e.preventDefault()
this.setState({[error]: "Only one period allowed in decimal numbers!"});
return false;
}
}
但这只会阻止第三次按键并允许第二次按键。
如何使用 JavaScript 防止按键?
PS-如果类型为“数字”,我将使用输入字段。因此,在我按下第二个点后,e.target.value 变为 null。
最佳答案
您可以将正则表达式与 onChange
事件一起使用。
testHanlder = (event) => {
let value = event.target.value;
if (value) {
value = value.replace(/\.+/g, ".")
this.setState({value})
}
}
关于javascript - 如何防止第二次输入相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49573211/