我具有与ReactJS组件的onKeyPress事件相关联的以下功能:
onKeyPress(e) {
if (!isNumeric(e.key) && e.key !== '.') {
return false;
}
}
这将正确执行,因为如果输入的不是数字(例如“ b”),它将返回false。但是,问题在于,链接到控件的onChange()
事件仍在触发。我希望如果您抑制键盘输入,则什么也不会改变,并且onChange
事件不会触发。这似乎没有发生。
答案 0 :(得分:2)
只是@Joel提供的电话号码的扩展名
onKeyPress(e) {
if (!isNumeric(e.key) && e.key !== '.') {
e.preventDefault();
//return false; Not needed
}
}
您只需要e.preventDefault()
,就可以排除return false
答案 1 :(得分:1)
您需要在事件上使用preventDefault()
才能停止默认事件绑定。为此修改您的代码:
onKeyPress(e) {
if (!isNumeric(e.key) && e.key !== '.') {
e.preventDefault();
return false;
}
}